Lines Matching defs:iocb

4359 static bool f2fs_should_use_dio(struct inode *inode, struct kiocb *iocb,
4364 if (!(iocb->ki_flags & IOCB_DIRECT))
4381 align = iocb->ki_pos | iov_iter_alignment(iter);
4389 static int f2fs_dio_read_end_io(struct kiocb *iocb, ssize_t size, int error,
4392 struct f2fs_sb_info *sbi = F2FS_I_SB(file_inode(iocb->ki_filp));
4405 static ssize_t f2fs_dio_read_iter(struct kiocb *iocb, struct iov_iter *to)
4407 struct file *file = iocb->ki_filp;
4411 const loff_t pos = iocb->ki_pos;
4419 trace_f2fs_direct_IO_enter(inode, iocb, count, READ);
4421 if (iocb->ki_flags & IOCB_NOWAIT) {
4436 dio = __iomap_dio_rw(iocb, to, &f2fs_iomap_ops,
4476 static ssize_t f2fs_file_read_iter(struct kiocb *iocb, struct iov_iter *to)
4478 struct inode *inode = file_inode(iocb->ki_filp);
4479 const loff_t pos = iocb->ki_pos;
4486 f2fs_trace_rw_file_path(iocb->ki_filp, iocb->ki_pos,
4489 if (f2fs_should_use_dio(inode, iocb, to)) {
4490 ret = f2fs_dio_read_iter(iocb, to);
4492 ret = filemap_read(iocb, to, 0);
4526 static ssize_t f2fs_write_checks(struct kiocb *iocb, struct iov_iter *from)
4528 struct file *file = iocb->ki_filp;
4539 count = generic_write_checks(iocb, from);
4556 static int f2fs_preallocate_blocks(struct kiocb *iocb, struct iov_iter *iter,
4559 struct inode *inode = file_inode(iocb->ki_filp);
4561 const loff_t pos = iocb->ki_pos;
4579 if (iocb->ki_flags & IOCB_NOWAIT)
4620 static ssize_t f2fs_buffered_write_iter(struct kiocb *iocb,
4623 struct file *file = iocb->ki_filp;
4627 if (iocb->ki_flags & IOCB_NOWAIT)
4630 ret = generic_perform_write(iocb, from);
4639 static int f2fs_dio_write_end_io(struct kiocb *iocb, ssize_t size, int error,
4642 struct f2fs_sb_info *sbi = F2FS_I_SB(file_inode(iocb->ki_filp));
4669 static ssize_t f2fs_dio_write_iter(struct kiocb *iocb, struct iov_iter *from,
4672 struct file *file = iocb->ki_filp;
4677 const loff_t pos = iocb->ki_pos;
4683 trace_f2fs_direct_IO_enter(inode, iocb, count, WRITE);
4685 if (iocb->ki_flags & IOCB_NOWAIT) {
4721 dio = __iomap_dio_rw(iocb, from, &f2fs_iomap_ops,
4746 loff_t bufio_start_pos = iocb->ki_pos;
4753 ret2 = f2fs_buffered_write_iter(iocb, from);
4755 f2fs_write_failed(inode, iocb->ki_pos);
4781 static ssize_t f2fs_file_write_iter(struct kiocb *iocb, struct iov_iter *from)
4783 struct inode *inode = file_inode(iocb->ki_filp);
4784 const loff_t orig_pos = iocb->ki_pos;
4802 if (iocb->ki_flags & IOCB_NOWAIT) {
4811 ret = f2fs_write_checks(iocb, from);
4816 dio = f2fs_should_use_dio(inode, iocb, from);
4819 target_size = iocb->ki_pos + iov_iter_count(from);
4820 preallocated = f2fs_preallocate_blocks(iocb, from, dio);
4825 f2fs_trace_rw_file_path(iocb->ki_filp, iocb->ki_pos,
4830 f2fs_dio_write_iter(iocb, from, &may_need_sync) :
4831 f2fs_buffered_write_iter(iocb, from);
4856 ret = generic_write_sync(iocb, ret);
4861 if (ret > 0 && !dio && (iocb->ki_flags & IOCB_DIRECT))
4862 f2fs_flush_buffered_write(iocb->ki_filp->f_mapping,