Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d641df81 authored by Yan, Zheng's avatar Yan, Zheng Committed by Ilya Dryomov
Browse files

ceph: update readpages osd request according to size of pages



add_to_page_cache_lru() can fails, so the actual pages to read
can be smaller than the initial size of osd request. We need to
update osd request size in that case.

Signed-off-by: default avatarYan, Zheng <zyan@redhat.com>
Reviewed-by: default avatarJeff Layton <jlayton@redhat.com>
parent 24c149ad
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -391,6 +391,7 @@ static int start_read(struct inode *inode, struct list_head *page_list, int max)
			nr_pages = i;
			if (nr_pages > 0) {
				len = nr_pages << PAGE_SHIFT;
				osd_req_op_extent_update(req, 0, len);
				break;
			}
			goto out_pages;
+2 −1
Original line number Diff line number Diff line
@@ -672,6 +672,7 @@ void osd_req_op_extent_update(struct ceph_osd_request *osd_req,
	BUG_ON(length > previous);

	op->extent.length = length;
	if (op->op == CEPH_OSD_OP_WRITE || op->op == CEPH_OSD_OP_WRITEFULL)
		op->indata_len -= previous - length;
}
EXPORT_SYMBOL(osd_req_op_extent_update);