summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Layton <jlayton@kernel.org>2020-11-12 09:37:59 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-01-06 14:56:55 +0100
commit86be0f2a0ef9d85e4872d4017b09e4e620d948ae (patch)
treec1902b531873ad84965daa41e48cf0c2d60ee548
parent8bcfa178f92a1f7266d86205f9de134fd46f6e1e (diff)
downloadlinux-stable-86be0f2a0ef9d85e4872d4017b09e4e620d948ae.tar.gz
linux-stable-86be0f2a0ef9d85e4872d4017b09e4e620d948ae.tar.bz2
linux-stable-86be0f2a0ef9d85e4872d4017b09e4e620d948ae.zip
ceph: fix inode refcount leak when ceph_fill_inode on non-I_NEW inode fails
[ Upstream commit 68cbb8056a4c24c6a38ad2b79e0a9764b235e8fa ] Signed-off-by: Jeff Layton <jlayton@kernel.org> Reviewed-by: Ilya Dryomov <idryomov@gmail.com> Signed-off-by: Ilya Dryomov <idryomov@gmail.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--fs/ceph/inode.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c
index 526faf4778ce..2462a9a84b95 100644
--- a/fs/ceph/inode.c
+++ b/fs/ceph/inode.c
@@ -1335,6 +1335,8 @@ retry_lookup:
in, ceph_vinop(in));
if (in->i_state & I_NEW)
discard_new_inode(in);
+ else
+ iput(in);
goto done;
}
req->r_target_inode = in;