diff options
author | Yan, Zheng <zyan@redhat.com> | 2019-05-23 11:01:37 +0800 |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2019-07-08 14:01:42 +0200 |
commit | d6e47819721ae2d9d090058ad5570a66f3c42e39 (patch) | |
tree | 86e4c8bba5d0a7915388e00b6631a69601be8330 /fs/ceph/inode.c | |
parent | 8f2a98ef3c1adf815ce38d5cc2f4e2a8759e98c5 (diff) | |
download | linux-d6e47819721ae2d9d090058ad5570a66f3c42e39.tar.bz2 |
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.c | 2 |
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); |