Lines Matching defs:iocb

691 			struct inode *inode = file_inode(io->iocb->ki_filp);
700 io->iocb->ki_complete(io->iocb, res);
783 struct file *file = ia->io->iocb->ki_filp;
1012 static ssize_t fuse_cache_read_iter(struct kiocb *iocb, struct iov_iter *to)
1014 struct inode *inode = iocb->ki_filp->f_mapping->host;
1023 (iocb->ki_pos + iov_iter_count(to) > i_size_read(inode))) {
1025 err = fuse_update_attributes(inode, iocb->ki_filp, STATX_SIZE);
1030 return generic_file_read_iter(iocb, to);
1055 static unsigned int fuse_write_flags(struct kiocb *iocb)
1057 unsigned int flags = iocb->ki_filp->f_flags;
1059 if (iocb_is_dsync(iocb))
1061 if (iocb->ki_flags & IOCB_SYNC)
1070 struct kiocb *iocb = ia->io->iocb;
1071 struct file *file = iocb->ki_filp;
1078 inarg->flags = fuse_write_flags(iocb);
1114 struct kiocb *iocb, struct inode *inode,
1118 struct file *file = iocb->ki_filp;
1129 ia->write.in.flags = fuse_write_flags(iocb);
1246 static ssize_t fuse_perform_write(struct kiocb *iocb, struct iov_iter *ii)
1248 struct address_space *mapping = iocb->ki_filp->f_mapping;
1252 loff_t pos = iocb->ki_pos;
1276 err = fuse_send_write_pages(&ia, iocb, inode,
1297 iocb->ki_pos += res;
1301 static ssize_t fuse_cache_write_iter(struct kiocb *iocb, struct iov_iter *from)
1303 struct file *file = iocb->ki_filp;
1323 return generic_file_write_iter(iocb, from);
1329 err = generic_write_checks(iocb, from);
1341 if (iocb->ki_flags & IOCB_DIRECT) {
1342 written = generic_file_direct_write(iocb, from);
1345 written = direct_write_fallback(iocb, from, written,
1346 fuse_perform_write(iocb, from));
1348 written = fuse_perform_write(iocb, from);
1353 written = generic_write_sync(iocb, written);
1430 struct file *file = io->iocb->ki_filp;
1534 struct inode *inode = file_inode(io->iocb->ki_filp);
1543 static ssize_t fuse_direct_IO(struct kiocb *iocb, struct iov_iter *iter);
1545 static ssize_t fuse_direct_read_iter(struct kiocb *iocb, struct iov_iter *to)
1549 if (!is_sync_kiocb(iocb) && iocb->ki_flags & IOCB_DIRECT) {
1550 res = fuse_direct_IO(iocb, to);
1552 struct fuse_io_priv io = FUSE_IO_PRIV_SYNC(iocb);
1554 res = __fuse_direct_read(&io, to, &iocb->ki_pos);
1560 static bool fuse_direct_write_extending_i_size(struct kiocb *iocb,
1563 struct inode *inode = file_inode(iocb->ki_filp);
1565 return iocb->ki_pos + iov_iter_count(iter) > i_size_read(inode);
1568 static ssize_t fuse_direct_write_iter(struct kiocb *iocb, struct iov_iter *from)
1570 struct inode *inode = file_inode(iocb->ki_filp);
1571 struct file *file = iocb->ki_filp;
1573 struct fuse_io_priv io = FUSE_IO_PRIV_SYNC(iocb);
1578 iocb->ki_flags & IOCB_APPEND ||
1579 fuse_direct_write_extending_i_size(iocb, from);
1596 if (fuse_direct_write_extending_i_size(iocb, from)) {
1603 res = generic_write_checks(iocb, from);
1605 if (!is_sync_kiocb(iocb) && iocb->ki_flags & IOCB_DIRECT) {
1606 res = fuse_direct_IO(iocb, from);
1608 res = fuse_direct_io(&io, from, &iocb->ki_pos,
1610 fuse_write_update_attr(inode, iocb->ki_pos, res);
1621 static ssize_t fuse_file_read_iter(struct kiocb *iocb, struct iov_iter *to)
1623 struct file *file = iocb->ki_filp;
1631 return fuse_dax_read_iter(iocb, to);
1634 return fuse_cache_read_iter(iocb, to);
1636 return fuse_direct_read_iter(iocb, to);
1639 static ssize_t fuse_file_write_iter(struct kiocb *iocb, struct iov_iter *from)
1641 struct file *file = iocb->ki_filp;
1649 return fuse_dax_write_iter(iocb, from);
1652 return fuse_cache_write_iter(iocb, from);
1654 return fuse_direct_write_iter(iocb, from);
2886 fuse_direct_IO(struct kiocb *iocb, struct iov_iter *iter)
2890 struct file *file = iocb->ki_filp;
2896 loff_t offset = iocb->ki_pos;
2922 io->iocb = iocb;
2923 io->blocking = is_sync_kiocb(iocb);