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" <zyan@redhat.com> Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
This commit is contained in:
@@ -930,8 +930,8 @@ get_more_pages:
|
|||||||
|
|
||||||
/* only if matching snap context */
|
/* only if matching snap context */
|
||||||
pgsnapc = page_snap_context(page);
|
pgsnapc = page_snap_context(page);
|
||||||
if (pgsnapc->seq > snapc->seq) {
|
if (pgsnapc != snapc) {
|
||||||
dout("page snapc %p %lld > oldest %p %lld\n",
|
dout("page snapc %p %lld != oldest %p %lld\n",
|
||||||
pgsnapc, pgsnapc->seq, snapc, snapc->seq);
|
pgsnapc, pgsnapc->seq, snapc, snapc->seq);
|
||||||
unlock_page(page);
|
unlock_page(page);
|
||||||
continue;
|
continue;
|
||||||
|
Reference in New Issue
Block a user