ceph: don't zero i_wrbuffer_ref when reconnecting is denied
authorYan, Zheng <zyan@redhat.com>
Tue, 24 Mar 2015 07:49:36 +0000 (15:49 +0800)
committerIlya Dryomov <idryomov@gmail.com>
Mon, 20 Apr 2015 15:55:36 +0000 (18:55 +0300)
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 <zyan@redhat.com>
fs/ceph/mds_client.c

index 0cfc2d16354917e00ab3ca42dc831b2faedaf48c..c3bac611a097a6b729e3511a9c33bccd6e8c3feb 100644 (file)
@@ -1120,13 +1120,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);