From 91dd4e0c67ce96309e8f20a0836cde6ba70efc84 Mon Sep 17 00:00:00 2001 From: "Yan, Zheng" Date: Tue, 24 Mar 2015 15:49:36 +0800 Subject: [PATCH 2/2] ceph: don't zero i_wrbuffer_ref when reconnecting is denied remove_session_caps_cb() does not truncate dirty data in page cache, but zeros i_wrbuffer_ref/i_wrbuffer_ref_head. This will result negtive i_wrbuffer_ref/i_wrbuffer_ref_head Signed-off-by: Yan, Zheng --- fs/ceph/mds_client.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c index 82a1973..9d87959 100644 --- a/fs/ceph/mds_client.c +++ b/fs/ceph/mds_client.c @@ -1106,13 +1106,6 @@ static int remove_session_caps_cb(struct inode *inode, struct ceph_cap *cap, mdsc->num_cap_flushing--; drop = 1; } - if (drop && ci->i_wrbuffer_ref) { - pr_info(" dropping dirty data for %p %lld\n", - inode, ceph_ino(inode)); - ci->i_wrbuffer_ref = 0; - ci->i_wrbuffer_ref_head = 0; - drop++; - } spin_unlock(&mdsc->cap_dirty_lock); } spin_unlock(&ci->i_ceph_lock); -- 1.9.3