Lines Matching refs:iocb
701 ssize_t fuse_dax_read_iter(struct kiocb *iocb, struct iov_iter *to) in fuse_dax_read_iter() argument
703 struct inode *inode = file_inode(iocb->ki_filp); in fuse_dax_read_iter()
706 if (iocb->ki_flags & IOCB_NOWAIT) { in fuse_dax_read_iter()
713 ret = dax_iomap_rw(iocb, to, &fuse_iomap_ops); in fuse_dax_read_iter()
720 static bool file_extending_write(struct kiocb *iocb, struct iov_iter *from) in file_extending_write() argument
722 struct inode *inode = file_inode(iocb->ki_filp); in file_extending_write()
725 ((iocb->ki_pos) >= i_size_read(inode) || in file_extending_write()
726 (iocb->ki_pos + iov_iter_count(from) > i_size_read(inode)))); in file_extending_write()
729 static ssize_t fuse_dax_direct_write(struct kiocb *iocb, struct iov_iter *from) in fuse_dax_direct_write() argument
731 struct inode *inode = file_inode(iocb->ki_filp); in fuse_dax_direct_write()
732 struct fuse_io_priv io = FUSE_IO_PRIV_SYNC(iocb); in fuse_dax_direct_write()
735 ret = fuse_direct_io(&io, from, &iocb->ki_pos, FUSE_DIO_WRITE); in fuse_dax_direct_write()
740 fuse_write_update_size(inode, iocb->ki_pos); in fuse_dax_direct_write()
744 ssize_t fuse_dax_write_iter(struct kiocb *iocb, struct iov_iter *from) in fuse_dax_write_iter() argument
746 struct inode *inode = file_inode(iocb->ki_filp); in fuse_dax_write_iter()
749 if (iocb->ki_flags & IOCB_NOWAIT) { in fuse_dax_write_iter()
756 ret = generic_write_checks(iocb, from); in fuse_dax_write_iter()
760 ret = file_remove_privs(iocb->ki_filp); in fuse_dax_write_iter()
768 if (file_extending_write(iocb, from)) in fuse_dax_write_iter()
769 ret = fuse_dax_direct_write(iocb, from); in fuse_dax_write_iter()
771 ret = dax_iomap_rw(iocb, from, &fuse_iomap_ops); in fuse_dax_write_iter()
777 ret = generic_write_sync(iocb, ret); in fuse_dax_write_iter()