diff options
author | Yan, Zheng <zyan@redhat.com> | 2019-05-23 05:01:37 +0200 |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2019-07-08 14:01:42 +0200 |
commit | d6e47819721ae2d9d090058ad5570a66f3c42e39 (patch) | |
tree | 86e4c8bba5d0a7915388e00b6631a69601be8330 /fs/ceph/super.h | |
parent | ceph: ensure d_name/d_parent stability in ceph_mdsc_lease_send_msg() (diff) | |
download | linux-d6e47819721ae2d9d090058ad5570a66f3c42e39.tar.xz linux-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/super.h')
-rw-r--r-- | fs/ceph/super.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/ceph/super.h b/fs/ceph/super.h index 29ea4eba98fe..0176b3c97e1a 100644 --- a/fs/ceph/super.h +++ b/fs/ceph/super.h @@ -1004,7 +1004,7 @@ extern void ceph_add_cap(struct inode *inode, unsigned cap, unsigned seq, u64 realmino, int flags, struct ceph_cap **new_cap); extern void __ceph_remove_cap(struct ceph_cap *cap, bool queue_release); -extern void __ceph_remove_caps(struct inode* inode); +extern void __ceph_remove_caps(struct ceph_inode_info *ci); extern void ceph_put_cap(struct ceph_mds_client *mdsc, struct ceph_cap *cap); extern int ceph_is_any_caps(struct inode *inode); |