ceph: add missing check in d_revalidate snapdir handling
commit 1f08529c84cfecaf1261ed9b7e17fab18541c58f upstream. We should not play with dcache without parent locked... Cc: stable@vger.kernel.org Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Ilya Dryomov <idryomov@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
6f9657793a
commit
78a1d6cdd3
1 changed files with 1 additions and 0 deletions
|
@ -1399,6 +1399,7 @@ int ceph_fill_trace(struct super_block *sb, struct ceph_mds_request *req)
|
||||||
dout(" final dn %p\n", dn);
|
dout(" final dn %p\n", dn);
|
||||||
} else if ((req->r_op == CEPH_MDS_OP_LOOKUPSNAP ||
|
} else if ((req->r_op == CEPH_MDS_OP_LOOKUPSNAP ||
|
||||||
req->r_op == CEPH_MDS_OP_MKSNAP) &&
|
req->r_op == CEPH_MDS_OP_MKSNAP) &&
|
||||||
|
test_bit(CEPH_MDS_R_PARENT_LOCKED, &req->r_req_flags) &&
|
||||||
!test_bit(CEPH_MDS_R_ABORTED, &req->r_req_flags)) {
|
!test_bit(CEPH_MDS_R_ABORTED, &req->r_req_flags)) {
|
||||||
struct dentry *dn = req->r_dentry;
|
struct dentry *dn = req->r_dentry;
|
||||||
struct inode *dir = req->r_parent;
|
struct inode *dir = req->r_parent;
|
||||||
|
|
Loading…
Reference in a new issue