|
@@ -918,6 +918,11 @@ ceph_direct_read_write(struct kiocb *iocb, struct iov_iter *iter,
|
|
|
size_t start = 0;
|
|
|
ssize_t len;
|
|
|
|
|
|
+ if (write)
|
|
|
+ size = min_t(u64, size, fsc->mount_options->wsize);
|
|
|
+ else
|
|
|
+ size = min_t(u64, size, fsc->mount_options->rsize);
|
|
|
+
|
|
|
vino = ceph_vino(inode);
|
|
|
req = ceph_osdc_new_request(&fsc->client->osdc, &ci->i_layout,
|
|
|
vino, pos, &size, 0,
|
|
@@ -933,11 +938,6 @@ ceph_direct_read_write(struct kiocb *iocb, struct iov_iter *iter,
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
- if (write)
|
|
|
- size = min_t(u64, size, fsc->mount_options->wsize);
|
|
|
- else
|
|
|
- size = min_t(u64, size, fsc->mount_options->rsize);
|
|
|
-
|
|
|
len = size;
|
|
|
pages = dio_get_pages_alloc(iter, len, &start, &num_pages);
|
|
|
if (IS_ERR(pages)) {
|