From: Yan, Zheng Date: Sun, 3 Sep 2017 02:09:11 +0000 (+0800) Subject: ceph: fix capsnap dirty pages accounting X-Git-Tag: v4.14-rc1~47^2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7e1ee54a07b6f00f4b6dd9cd24505d3b76774ddc;p=platform%2Fkernel%2Flinux-rpi.git ceph: fix capsnap dirty pages accounting writepages_finish() calls ceph_put_wrbuffer_cap_refs() once for all pages, parameter snapc is set to req->r_snapc. So writepages() shouldn't write dirty pages associated with different snapc in one OSD request. Signed-off-by: "Yan, Zheng" Signed-off-by: Ilya Dryomov --- diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index 201e529..1ffdb90 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -930,8 +930,8 @@ get_more_pages: /* only if matching snap context */ pgsnapc = page_snap_context(page); - if (pgsnapc->seq > snapc->seq) { - dout("page snapc %p %lld > oldest %p %lld\n", + if (pgsnapc != snapc) { + dout("page snapc %p %lld != oldest %p %lld\n", pgsnapc, pgsnapc->seq, snapc, snapc->seq); unlock_page(page); continue;