summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/ceph/caps.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c
index d3b9c9d5c1bd..f5a38910a82b 100644
--- a/fs/ceph/caps.c
+++ b/fs/ceph/caps.c
@@ -1058,6 +1058,11 @@ void __ceph_remove_cap(struct ceph_cap *cap, bool queue_release)
1058 1058
1059 dout("__ceph_remove_cap %p from %p\n", cap, &ci->vfs_inode); 1059 dout("__ceph_remove_cap %p from %p\n", cap, &ci->vfs_inode);
1060 1060
1061 /* remove from inode's cap rbtree, and clear auth cap */
1062 rb_erase(&cap->ci_node, &ci->i_caps);
1063 if (ci->i_auth_cap == cap)
1064 ci->i_auth_cap = NULL;
1065
1061 /* remove from session list */ 1066 /* remove from session list */
1062 spin_lock(&session->s_cap_lock); 1067 spin_lock(&session->s_cap_lock);
1063 if (session->s_cap_iterator == cap) { 1068 if (session->s_cap_iterator == cap) {
@@ -1091,11 +1096,6 @@ void __ceph_remove_cap(struct ceph_cap *cap, bool queue_release)
1091 1096
1092 spin_unlock(&session->s_cap_lock); 1097 spin_unlock(&session->s_cap_lock);
1093 1098
1094 /* remove from inode list */
1095 rb_erase(&cap->ci_node, &ci->i_caps);
1096 if (ci->i_auth_cap == cap)
1097 ci->i_auth_cap = NULL;
1098
1099 if (removed) 1099 if (removed)
1100 ceph_put_cap(mdsc, cap); 1100 ceph_put_cap(mdsc, cap);
1101 1101