Lines Matching refs:iocb
1279 static ssize_t ceph_sync_read(struct kiocb *iocb, struct iov_iter *to, in ceph_sync_read() argument
1282 struct file *file = iocb->ki_filp; in ceph_sync_read()
1286 doutc(cl, "on file %p %llx~%zx %s\n", file, iocb->ki_pos, in ceph_sync_read()
1290 return __ceph_sync_read(inode, &iocb->ki_pos, to, retry_op, NULL); in ceph_sync_read()
1294 struct kiocb *iocb; member
1323 if (aio_req->iocb->ki_flags & IOCB_DIRECT) in ceph_aio_complete()
1335 loff_t endoff = aio_req->iocb->ki_pos + aio_req->total_len; in ceph_aio_complete()
1353 aio_req->iocb->ki_complete(aio_req->iocb, ret); in ceph_aio_complete()
1406 loff_t endoff = aio_req->iocb->ki_pos + rc; in ceph_aio_complete_req()
1519 ceph_direct_read_write(struct kiocb *iocb, struct iov_iter *iter, in ceph_direct_read_write() argument
1523 struct file *file = iocb->ki_filp; in ceph_direct_read_write()
1538 loff_t pos = iocb->ki_pos; in ceph_direct_read_write()
1618 if (pos == iocb->ki_pos && !is_sync_kiocb(iocb) && in ceph_direct_read_write()
1622 aio_req->iocb = iocb; in ceph_direct_read_write()
1745 if (ret != -EOLDSNAPC && pos > iocb->ki_pos) { in ceph_direct_read_write()
1746 ret = pos - iocb->ki_pos; in ceph_direct_read_write()
1747 iocb->ki_pos = pos; in ceph_direct_read_write()
1760 ceph_sync_write(struct kiocb *iocb, struct iov_iter *from, loff_t pos, in ceph_sync_write() argument
1763 struct file *file = iocb->ki_filp; in ceph_sync_write()
2155 iocb->ki_pos = pos; in ceph_sync_write()
2168 static ssize_t ceph_read_iter(struct kiocb *iocb, struct iov_iter *to) in ceph_read_iter() argument
2170 struct file *filp = iocb->ki_filp; in ceph_read_iter()
2175 bool direct_lock = iocb->ki_flags & IOCB_DIRECT; in ceph_read_iter()
2183 iocb->ki_pos, (unsigned)len, inode, ceph_vinop(inode)); in ceph_read_iter()
2208 (iocb->ki_flags & IOCB_DIRECT) || in ceph_read_iter()
2212 inode, ceph_vinop(inode), iocb->ki_pos, (unsigned)len, in ceph_read_iter()
2217 (iocb->ki_flags & IOCB_DIRECT) && in ceph_read_iter()
2219 ret = ceph_direct_read_write(iocb, to, in ceph_read_iter()
2224 ret = ceph_sync_read(iocb, to, &retry_op); in ceph_read_iter()
2232 inode, ceph_vinop(inode), iocb->ki_pos, (unsigned)len, in ceph_read_iter()
2235 ret = generic_file_read_iter(iocb, to); in ceph_read_iter()
2275 if (iocb->ki_pos < i_size && in ceph_read_iter()
2276 iocb->ki_pos < PAGE_SIZE) { in ceph_read_iter()
2278 iocb->ki_pos + len); in ceph_read_iter()
2283 iocb->ki_pos & ~PAGE_MASK, in ceph_read_iter()
2284 end - iocb->ki_pos, to); in ceph_read_iter()
2285 iocb->ki_pos += ret; in ceph_read_iter()
2288 if (iocb->ki_pos < i_size && read < len) { in ceph_read_iter()
2290 i_size - iocb->ki_pos); in ceph_read_iter()
2292 iocb->ki_pos += ret; in ceph_read_iter()
2300 if (retry_op == CHECK_EOF && iocb->ki_pos < i_size && in ceph_read_iter()
2303 iocb->ki_pos, i_size); in ceph_read_iter()
2394 static ssize_t ceph_write_iter(struct kiocb *iocb, struct iov_iter *from) in ceph_write_iter() argument
2396 struct file *file = iocb->ki_filp; in ceph_write_iter()
2422 if ((iocb->ki_flags & (IOCB_DIRECT | IOCB_APPEND)) == IOCB_DIRECT) in ceph_write_iter()
2431 if (iocb->ki_flags & IOCB_APPEND) { in ceph_write_iter()
2437 err = generic_write_checks(iocb, from); in ceph_write_iter()
2441 pos = iocb->ki_pos; in ceph_write_iter()
2489 if (iocb->ki_flags & IOCB_APPEND) { in ceph_write_iter()
2496 iocb->ki_pos = cur_eof; in ceph_write_iter()
2539 (iocb->ki_flags & IOCB_DIRECT) || (fi->flags & CEPH_F_SYNC) || in ceph_write_iter()
2559 if ((iocb->ki_flags & IOCB_DIRECT) && !IS_ENCRYPTED(inode)) in ceph_write_iter()
2560 written = ceph_direct_read_write(iocb, &data, snapc, in ceph_write_iter()
2563 written = ceph_sync_write(iocb, &data, pos, snapc); in ceph_write_iter()
2579 written = generic_perform_write(iocb, from); in ceph_write_iter()
2592 if (ceph_quota_is_max_bytes_approaching(inode, iocb->ki_pos)) in ceph_write_iter()
2611 iocb->ki_flags |= IOCB_DSYNC; in ceph_write_iter()
2612 written = generic_write_sync(iocb, written); in ceph_write_iter()