From: Yan, Zheng Date: Thu, 7 May 2015 02:59:47 +0000 (+0800) Subject: ceph: don't trim auth cap when there are cap snaps X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=622f3e250f498976ad4cbae6f2be5cb359ded4f5;p=deliverable%2Flinux.git ceph: don't trim auth cap when there are cap snaps Signed-off-by: Yan, Zheng --- diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c index f125e06dacb8..88010f9a254d 100644 --- a/fs/ceph/mds_client.c +++ b/fs/ceph/mds_client.c @@ -1371,7 +1371,8 @@ static int trim_caps_cb(struct inode *inode, struct ceph_cap *cap, void *arg) inode, cap, ceph_cap_string(mine), ceph_cap_string(oissued), ceph_cap_string(used), ceph_cap_string(wanted)); if (cap == ci->i_auth_cap) { - if (ci->i_dirty_caps | ci->i_flushing_caps) + if (ci->i_dirty_caps || ci->i_flushing_caps || + !list_empty(&ci->i_cap_snaps)) goto out; if ((used | wanted) & CEPH_CAP_ANY_WR) goto out;