diff options
author | Yan, Zheng <zyan@redhat.com> | 2015-05-07 04:59:47 +0200 |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2015-06-25 10:49:28 +0200 |
commit | 622f3e250f498976ad4cbae6f2be5cb359ded4f5 (patch) | |
tree | 57bcc161bb3c3bd0c3a71d7cb5b2ee69f4340869 /fs/ceph/mds_client.c | |
parent | ceph: take snap_rwsem when accessing snap realm's cached_context (diff) | |
download | linux-622f3e250f498976ad4cbae6f2be5cb359ded4f5.tar.xz linux-622f3e250f498976ad4cbae6f2be5cb359ded4f5.zip |
ceph: don't trim auth cap when there are cap snaps
Signed-off-by: Yan, Zheng <zyan@redhat.com>
Diffstat (limited to 'fs/ceph/mds_client.c')
-rw-r--r-- | fs/ceph/mds_client.c | 3 |
1 files changed, 2 insertions, 1 deletions
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; |