diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2024-02-25 23:58:42 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2024-02-25 23:58:42 -0500 |
commit | aa23317d0268b309bb3f0801ddd0d61813ff5afb (patch) | |
tree | 8a5ac5cebb34a45e0e5f863ebd5d43a833d5a471 | |
parent | 2c88c16dc20e88dd54d2f6f4d01ae1dce6cc9654 (diff) | |
download | vfs-fixes.tar.gz |
qibfs: fix dentry leakpull-fixesfixes
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>
-rw-r--r-- | drivers/infiniband/hw/qib/qib_fs.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/qib/qib_fs.c b/drivers/infiniband/hw/qib/qib_fs.c index 455e966eeff390..b27791029fa934 100644 --- a/drivers/infiniband/hw/qib/qib_fs.c +++ b/drivers/infiniband/hw/qib/qib_fs.c @@ -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; } |