diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-09-26 21:41:05 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-09-26 22:20:20 -0400 |
commit | 2744c171dbaa0b1ec7639e7d0ff817fba9461a38 (patch) | |
tree | 7bf6b1da5b98cd7bd4e95554d442eff52937cabf /fs/ceph/inode.c | |
parent | 3a8ca1b6bf7069338e266082479f2f632c29afb3 (diff) |
ceph: don't abuse d_delete() on failure exits
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/ceph/inode.c')
-rw-r--r-- | fs/ceph/inode.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c index 4b5762ef7c2b..ba95eea201bf 100644 --- a/fs/ceph/inode.c +++ b/fs/ceph/inode.c | |||
@@ -1104,7 +1104,7 @@ int ceph_fill_trace(struct super_block *sb, struct ceph_mds_request *req, | |||
1104 | pr_err("fill_trace bad get_inode " | 1104 | pr_err("fill_trace bad get_inode " |
1105 | "%llx.%llx\n", vino.ino, vino.snap); | 1105 | "%llx.%llx\n", vino.ino, vino.snap); |
1106 | err = PTR_ERR(in); | 1106 | err = PTR_ERR(in); |
1107 | d_delete(dn); | 1107 | d_drop(dn); |
1108 | goto done; | 1108 | goto done; |
1109 | } | 1109 | } |
1110 | dn = splice_dentry(dn, in, &have_lease, true); | 1110 | dn = splice_dentry(dn, in, &have_lease, true); |
@@ -1277,7 +1277,7 @@ retry_lookup: | |||
1277 | in = ceph_get_inode(parent->d_sb, vino); | 1277 | in = ceph_get_inode(parent->d_sb, vino); |
1278 | if (IS_ERR(in)) { | 1278 | if (IS_ERR(in)) { |
1279 | dout("new_inode badness\n"); | 1279 | dout("new_inode badness\n"); |
1280 | d_delete(dn); | 1280 | d_drop(dn); |
1281 | dput(dn); | 1281 | dput(dn); |
1282 | err = PTR_ERR(in); | 1282 | err = PTR_ERR(in); |
1283 | goto out; | 1283 | goto out; |