diff options
author | Markus Elfring <elfring@users.sourceforge.net> | 2024-10-23 16:54:59 +0200 |
---|---|---|
committer | Joel Granados <joel.granados@kernel.org> | 2024-10-31 11:39:55 +0100 |
commit | 9c738dae9534fbdf77c250132cba04e0822983b3 (patch) | |
tree | 7531f36d7f5d2929964b7bddc7647d2140361d50 | |
parent | sysctl: Reorganize kerneldoc parameter names (diff) | |
download | linux-9c738dae9534fbdf77c250132cba04e0822983b3.tar.xz linux-9c738dae9534fbdf77c250132cba04e0822983b3.zip |
sysctl: Reduce dput(child) calls in proc_sys_fill_cache()
Replace two dput(child) calls with one that occurs immediately before
the IS_ERR evaluation. This transformation can be performed because
dput() gets called regardless of the value returned by IS_ERR(res).
This issue was transformed by using a script for the
semantic patch language like the following.
<SmPL>
@extended_adjustment@
expression e, f != { mutex_unlock }, x, y;
@@
+f(e);
if (...)
{
<+... when != \( e = x \| y(..., &e, ...) \)
- f(e);
...+>
}
-f(e);
</SmPL>
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Reviewed-by: Joel Granados <joel.granados@kernel.org>
Signed-off-by: Joel Granados <joel.granados@kernel.org>
-rw-r--r-- | fs/proc/proc_sysctl.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c index fac566065ed5..27a283d85a6e 100644 --- a/fs/proc/proc_sysctl.c +++ b/fs/proc/proc_sysctl.c @@ -704,11 +704,11 @@ static bool proc_sys_fill_cache(struct file *file, res = d_splice_alias(inode, child); d_lookup_done(child); if (unlikely(res)) { - if (IS_ERR(res)) { - dput(child); - return false; - } dput(child); + + if (IS_ERR(res)) + return false; + child = res; } } |