Lines Matching refs:iocb
497 static ssize_t ceph_sync_read(struct kiocb *iocb, struct iov_iter *i, in ceph_sync_read() argument
500 struct file *file = iocb->ki_filp; in ceph_sync_read()
503 u64 off = iocb->ki_pos; in ceph_sync_read()
524 if (iocb->ki_flags & IOCB_DIRECT) { in ceph_sync_read()
573 if (off > iocb->ki_pos) { in ceph_sync_read()
574 ret = off - iocb->ki_pos; in ceph_sync_read()
575 iocb->ki_pos = off; in ceph_sync_read()
623 ceph_sync_direct_write(struct kiocb *iocb, struct iov_iter *from, loff_t pos, in ceph_sync_direct_write() argument
626 struct file *file = iocb->ki_filp; in ceph_sync_direct_write()
724 iocb->ki_pos = pos; in ceph_sync_direct_write()
739 ceph_sync_write(struct kiocb *iocb, struct iov_iter *from, loff_t pos, in ceph_sync_write() argument
742 struct file *file = iocb->ki_filp; in ceph_sync_write()
855 iocb->ki_pos = pos; in ceph_sync_write()
867 static ssize_t ceph_read_iter(struct kiocb *iocb, struct iov_iter *to) in ceph_read_iter() argument
869 struct file *filp = iocb->ki_filp; in ceph_read_iter()
881 inode, ceph_vinop(inode), iocb->ki_pos, (unsigned)len, inode); in ceph_read_iter()
892 (iocb->ki_flags & IOCB_DIRECT) || in ceph_read_iter()
896 inode, ceph_vinop(inode), iocb->ki_pos, (unsigned)len, in ceph_read_iter()
901 ret = ceph_sync_read(iocb, to, &retry_op); in ceph_read_iter()
907 inode, ceph_vinop(inode), iocb->ki_pos, (unsigned)len, in ceph_read_iter()
910 ret = generic_file_read_iter(iocb, to); in ceph_read_iter()
943 if (iocb->ki_pos < i_size && in ceph_read_iter()
944 iocb->ki_pos < PAGE_CACHE_SIZE) { in ceph_read_iter()
946 iocb->ki_pos + len); in ceph_read_iter()
951 iocb->ki_pos & ~PAGE_MASK, in ceph_read_iter()
952 end - iocb->ki_pos, to); in ceph_read_iter()
953 iocb->ki_pos += ret; in ceph_read_iter()
956 if (iocb->ki_pos < i_size && read < len) { in ceph_read_iter()
958 i_size - iocb->ki_pos); in ceph_read_iter()
960 iocb->ki_pos += ret; in ceph_read_iter()
968 if (retry_op == CHECK_EOF && iocb->ki_pos < i_size && in ceph_read_iter()
971 ", reading more\n", iocb->ki_pos, in ceph_read_iter()
997 static ssize_t ceph_write_iter(struct kiocb *iocb, struct iov_iter *from) in ceph_write_iter() argument
999 struct file *file = iocb->ki_filp; in ceph_write_iter()
1022 if (iocb->ki_flags & IOCB_APPEND) { in ceph_write_iter()
1028 err = generic_write_checks(iocb, from); in ceph_write_iter()
1032 pos = iocb->ki_pos; in ceph_write_iter()
1070 (iocb->ki_flags & IOCB_DIRECT) || (fi->flags & CEPH_F_SYNC)) { in ceph_write_iter()
1090 if (iocb->ki_flags & IOCB_DIRECT) in ceph_write_iter()
1091 written = ceph_sync_direct_write(iocb, &data, pos, in ceph_write_iter()
1094 written = ceph_sync_write(iocb, &data, pos, snapc); in ceph_write_iter()
1117 iocb->ki_pos = pos + written; in ceph_write_iter()