aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2024-02-25 23:58:42 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2024-02-25 23:58:42 -0500
commitaa23317d0268b309bb3f0801ddd0d61813ff5afb (patch)
tree8a5ac5cebb34a45e0e5f863ebd5d43a833d5a471 /drivers/infiniband
parent2c88c16dc20e88dd54d2f6f4d01ae1dce6cc9654 (diff)
downloadlinux-aa23317d0268b309bb3f0801ddd0d61813ff5afb.tar.gz
qibfs: fix dentry leak
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>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r--drivers/infiniband/hw/qib/qib_fs.c1
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;
}