Lines Matching defs:iocb
1560 static noinline ssize_t btrfs_buffered_write(struct kiocb *iocb,
1563 struct file *file = iocb->ki_filp;
1564 loff_t pos = iocb->ki_pos;
1800 static ssize_t __btrfs_direct_write(struct kiocb *iocb, struct iov_iter *from)
1802 struct file *file = iocb->ki_filp;
1810 written = btrfs_direct_IO(iocb, from);
1815 pos = iocb->ki_pos;
1816 written_buffered = btrfs_buffered_write(iocb, from);
1833 iocb->ki_pos = pos + written_buffered;
1858 static ssize_t btrfs_file_write_iter(struct kiocb *iocb,
1861 struct file *file = iocb->ki_filp;
1867 const bool sync = iocb->ki_flags & IOCB_DSYNC;
1874 if (!(iocb->ki_flags & IOCB_DIRECT) &&
1875 (iocb->ki_flags & IOCB_NOWAIT))
1878 if (iocb->ki_flags & IOCB_NOWAIT) {
1885 err = generic_write_checks(iocb, from);
1891 pos = iocb->ki_pos;
1893 if (iocb->ki_flags & IOCB_NOWAIT) {
1961 if (iocb->ki_flags & IOCB_DIRECT) {
1975 * just re-set the IOCB_DSYNC on the iocb and we'll do
1984 iocb->ki_flags &= ~IOCB_DSYNC;
1987 num_written = __btrfs_direct_write(iocb, from);
1994 iocb->ki_flags |= IOCB_DSYNC;
1997 num_written = btrfs_buffered_write(iocb, from);
1999 iocb->ki_pos = pos + num_written;
2010 num_written = generic_write_sync(iocb, num_written);
3584 static ssize_t btrfs_file_read_iter(struct kiocb *iocb, struct iov_iter *to)
3588 if (iocb->ki_flags & IOCB_DIRECT) {
3589 struct inode *inode = file_inode(iocb->ki_filp);
3592 ret = btrfs_direct_IO(iocb, to);
3595 iocb->ki_pos >= i_size_read(file_inode(iocb->ki_filp)))
3599 return generic_file_buffered_read(iocb, to, ret);