提交 7e1ee54a 编写于 作者: Y Yan, Zheng 提交者: Ilya Dryomov

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: N"Yan, Zheng" <zyan@redhat.com>
Signed-off-by: NIlya Dryomov <idryomov@gmail.com>
上级 2a2d927e
...@@ -930,8 +930,8 @@ static int ceph_writepages_start(struct address_space *mapping, ...@@ -930,8 +930,8 @@ static int ceph_writepages_start(struct address_space *mapping,
/* 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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册