]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
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 10:02:20 +0000 (12:02 +0200)
[ 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

index ed7d4b02f45a6325ac73651791c4e0c50ede42dd..11155e0fb8395c5d66b500dca08c79c763d257eb 100644 (file)
@@ -439,6 +439,7 @@ static int remove_device_files(struct super_block *sb,
                return PTR_ERR(dir);
        }
        simple_recursive_removal(dir, NULL);
+       dput(dir);
        return 0;
 }