aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ceph/inode.c
diff options
context:
space:
mode:
authorYan, Zheng <zyan@redhat.com>2019-05-23 11:01:37 +0800
committerIlya Dryomov <idryomov@gmail.com>2019-07-08 14:01:42 +0200
commitd6e47819721ae2d9d090058ad5570a66f3c42e39 (patch)
tree86e4c8bba5d0a7915388e00b6631a69601be8330 /fs/ceph/inode.c
parentceph: ensure d_name/d_parent stability in ceph_mdsc_lease_send_msg() (diff)
downloadlinux-dev-d6e47819721ae2d9d090058ad5570a66f3c42e39.tar.xz
linux-dev-d6e47819721ae2d9d090058ad5570a66f3c42e39.zip
ceph: hold i_ceph_lock when removing caps for freeing inode
ceph_d_revalidate(, LOOKUP_RCU) may call __ceph_caps_issued_mask() on a freeing inode. Signed-off-by: "Yan, Zheng" <zyan@redhat.com> Reviewed-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to 'fs/ceph/inode.c')
-rw-r--r--fs/ceph/inode.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c
index aa631849a8d6..18869ba08db7 100644
--- a/fs/ceph/inode.c
+++ b/fs/ceph/inode.c
@@ -533,7 +533,7 @@ void ceph_destroy_inode(struct inode *inode)
ceph_fscache_unregister_inode_cookie(ci);
- __ceph_remove_caps(inode);
+ __ceph_remove_caps(ci);
if (__ceph_has_any_quota(ci))
ceph_adjust_quota_realms_count(inode, false);