qibfs: fix dentry leak
authorAl Viro <viro@zeniv.linux.org.uk>
Mon, 26 Feb 2024 04:58:42 +0000 (23:58 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 May 2024 09:50:57 +0000 (11:50 +0200)
commit24dd9b08df718f20ccf2dd1519909fefd8c233ee
tree7a0f1aafa1e3c7ca2d9f5c9d36c252681885f33a
parentab5b5e322d12f00af5c916583b63df9ec6e5d2a4
qibfs: fix dentry leak

[ Upstream commit aa23317d0268b309bb3f0801ddd0d61813ff5afb ]

simple_recursive_removal() drops the pinning references to all positives
in subtree.  For the cases when its argument has been kept alive by
the pinning alone that's exactly the right thing to do, but here
the argument comes from dcache lookup, that needs to be balanced by
explicit dput().

Fixes: e41d237818598 "qib_fs: switch to simple_recursive_removal()"
Fucked-up-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/infiniband/hw/qib/qib_fs.c