diff options
-rw-r--r-- | fs/ceph/caps.c | 10 |
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 | ||