]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
btrfs: remove redundant root argument from fixup_inode_link_count()
authorFilipe Manana <fdmanana@suse.com>
Fri, 22 Sep 2023 10:37:26 +0000 (11:37 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 17 Jul 2025 16:35:16 +0000 (18:35 +0200)
[ Upstream commit 8befc61cbba2d4567122d400542da8900a352971 ]

The root argument for fixup_inode_link_count() always matches the root of
the given inode, so remove the root argument and get it from the inode
argument. This also applies to the helpers count_inode_extrefs() and
count_inode_refs() used by fixup_inode_link_count() - they don't need the
root argument, as it always matches the root of the inode passed to them.

Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Stable-dep-of: 5f61b961599a ("btrfs: fix inode lookup error handling during log replay")
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/btrfs/tree-log.c

index 13377c3b22897d885383e6996897c46ca7a13d2c..a17942f4c155b07642194143a5648f8b208aaa20 100644 (file)
@@ -1504,8 +1504,7 @@ out:
        return ret;
 }
 
-static int count_inode_extrefs(struct btrfs_root *root,
-               struct btrfs_inode *inode, struct btrfs_path *path)
+static int count_inode_extrefs(struct btrfs_inode *inode, struct btrfs_path *path)
 {
        int ret = 0;
        int name_len;
@@ -1519,8 +1518,8 @@ static int count_inode_extrefs(struct btrfs_root *root,
        struct extent_buffer *leaf;
 
        while (1) {
-               ret = btrfs_find_one_extref(root, inode_objectid, offset, path,
-                                           &extref, &offset);
+               ret = btrfs_find_one_extref(inode->root, inode_objectid, offset,
+                                           path, &extref, &offset);
                if (ret)
                        break;
 
@@ -1548,8 +1547,7 @@ static int count_inode_extrefs(struct btrfs_root *root,
        return nlink;
 }
 
-static int count_inode_refs(struct btrfs_root *root,
-                       struct btrfs_inode *inode, struct btrfs_path *path)
+static int count_inode_refs(struct btrfs_inode *inode, struct btrfs_path *path)
 {
        int ret;
        struct btrfs_key key;
@@ -1564,7 +1562,7 @@ static int count_inode_refs(struct btrfs_root *root,
        key.offset = (u64)-1;
 
        while (1) {
-               ret = btrfs_search_slot(NULL, root, &key, path, 0, 0);
+               ret = btrfs_search_slot(NULL, inode->root, &key, path, 0, 0);
                if (ret < 0)
                        break;
                if (ret > 0) {
@@ -1616,9 +1614,9 @@ process_slot:
  * will free the inode.
  */
 static noinline int fixup_inode_link_count(struct btrfs_trans_handle *trans,
-                                          struct btrfs_root *root,
                                           struct inode *inode)
 {
+       struct btrfs_root *root = BTRFS_I(inode)->root;
        struct btrfs_path *path;
        int ret;
        u64 nlink = 0;
@@ -1628,13 +1626,13 @@ static noinline int fixup_inode_link_count(struct btrfs_trans_handle *trans,
        if (!path)
                return -ENOMEM;
 
-       ret = count_inode_refs(root, BTRFS_I(inode), path);
+       ret = count_inode_refs(BTRFS_I(inode), path);
        if (ret < 0)
                goto out;
 
        nlink = ret;
 
-       ret = count_inode_extrefs(root, BTRFS_I(inode), path);
+       ret = count_inode_extrefs(BTRFS_I(inode), path);
        if (ret < 0)
                goto out;
 
@@ -1706,7 +1704,7 @@ static noinline int fixup_inode_link_counts(struct btrfs_trans_handle *trans,
                        break;
                }
 
-               ret = fixup_inode_link_count(trans, root, inode);
+               ret = fixup_inode_link_count(trans, inode);
                iput(inode);
                if (ret)
                        break;