ubifs: Call iput(xino) only once in ubifs_purge_xattrs()
authorMarkus Elfring <elfring@users.sourceforge.net>
Thu, 26 Sep 2024 09:05:29 +0000 (11:05 +0200)
committerRichard Weinberger <richard@nod.at>
Thu, 14 Nov 2024 17:48:20 +0000 (18:48 +0100)
An iput(xino) call was immediately used after a return value check
for a remove_xattr() call in this function implementation.
Thus call such a function only once instead directly before the check.

This issue was transformed by using the Coccinelle software.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Reviewed-by: Zhihao Cheng <chengzhihao1@huawei.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
fs/ubifs/xattr.c

index c673fd0..cf77fb2 100644 (file)
@@ -541,16 +541,14 @@ int ubifs_purge_xattrs(struct inode *host)
 
                clear_nlink(xino);
                err = remove_xattr(c, host, xino, &nm);
+               iput(xino);
                if (err) {
                        kfree(pxent);
                        kfree(xent);
-                       iput(xino);
                        ubifs_err(c, "cannot remove xattr, error %d", err);
                        goto out_err;
                }
 
-               iput(xino);
-
                kfree(pxent);
                pxent = xent;
                key_read(c, &xent->key, &key);