]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
btrfs: do trivial BTRFS_PATH_AUTO_FREE conversions
authorDavid Sterba <dsterba@suse.com>
Mon, 24 Feb 2025 08:13:57 +0000 (09:13 +0100)
committerDavid Sterba <dsterba@suse.com>
Tue, 18 Mar 2025 19:35:47 +0000 (20:35 +0100)
The most trivial pattern for the auto freeing when the variable is
declared with the macro and the final btrfs_free_path() is removed.
There are almost none goto -> return conversions and there's no other
function cleanup.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/block-group.c
fs/btrfs/ctree.c
fs/btrfs/delayed-inode.c
fs/btrfs/disk-io.c
fs/btrfs/extent-tree.c
fs/btrfs/file-item.c

index f01b72231c7edcb6dc60e27f9b3f75fe310d88ec..64f0268dcf023e62092f196cfa4444359e59afcc 100644 (file)
@@ -584,7 +584,7 @@ static int sample_block_group_extent_item(struct btrfs_caching_control *caching_
        struct btrfs_root *extent_root;
        u64 search_offset;
        u64 search_end = block_group->start + block_group->length;
-       struct btrfs_path *path;
+       BTRFS_PATH_AUTO_FREE(path);
        struct btrfs_key search_key;
        int ret = 0;
 
@@ -626,7 +626,6 @@ static int sample_block_group_extent_item(struct btrfs_caching_control *caching_
 
        lockdep_assert_held(&caching_ctl->mutex);
        lockdep_assert_held_read(&fs_info->commit_root_sem);
-       btrfs_free_path(path);
        return ret;
 }
 
@@ -2670,7 +2669,7 @@ static int insert_dev_extent(struct btrfs_trans_handle *trans,
 {
        struct btrfs_fs_info *fs_info = device->fs_info;
        struct btrfs_root *root = fs_info->dev_root;
-       struct btrfs_path *path;
+       BTRFS_PATH_AUTO_FREE(path);
        struct btrfs_dev_extent *extent;
        struct extent_buffer *leaf;
        struct btrfs_key key;
@@ -2687,7 +2686,7 @@ static int insert_dev_extent(struct btrfs_trans_handle *trans,
        key.offset = start;
        ret = btrfs_insert_empty_item(trans, root, path, &key, sizeof(*extent));
        if (ret)
-               goto out;
+               return ret;
 
        leaf = path->nodes[0];
        extent = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_dev_extent);
@@ -2695,10 +2694,8 @@ static int insert_dev_extent(struct btrfs_trans_handle *trans,
        btrfs_set_dev_extent_chunk_objectid(leaf, extent,
                                            BTRFS_FIRST_CHUNK_TREE_OBJECTID);
        btrfs_set_dev_extent_chunk_offset(leaf, extent, chunk_offset);
-
        btrfs_set_dev_extent_length(leaf, extent, num_bytes);
-out:
-       btrfs_free_path(path);
+
        return ret;
 }
 
@@ -3335,7 +3332,7 @@ int btrfs_setup_space_cache(struct btrfs_trans_handle *trans)
        struct btrfs_fs_info *fs_info = trans->fs_info;
        struct btrfs_block_group *cache, *tmp;
        struct btrfs_transaction *cur_trans = trans->transaction;
-       struct btrfs_path *path;
+       BTRFS_PATH_AUTO_FREE(path);
 
        if (list_empty(&cur_trans->dirty_bgs) ||
            !btrfs_test_opt(fs_info, SPACE_CACHE))
@@ -3352,7 +3349,6 @@ int btrfs_setup_space_cache(struct btrfs_trans_handle *trans)
                        cache_save_setup(cache, trans, path);
        }
 
-       btrfs_free_path(path);
        return 0;
 }
 
@@ -3375,7 +3371,7 @@ int btrfs_start_dirty_block_groups(struct btrfs_trans_handle *trans)
        struct btrfs_transaction *cur_trans = trans->transaction;
        int ret = 0;
        int should_put;
-       struct btrfs_path *path = NULL;
+       BTRFS_PATH_AUTO_FREE(path);
        LIST_HEAD(dirty);
        struct list_head *io = &cur_trans->io_bgs;
        int loops = 0;
@@ -3530,7 +3526,6 @@ out:
                btrfs_cleanup_dirty_bgs(cur_trans, fs_info);
        }
 
-       btrfs_free_path(path);
        return ret;
 }
 
@@ -3541,7 +3536,7 @@ int btrfs_write_dirty_block_groups(struct btrfs_trans_handle *trans)
        struct btrfs_transaction *cur_trans = trans->transaction;
        int ret = 0;
        int should_put;
-       struct btrfs_path *path;
+       BTRFS_PATH_AUTO_FREE(path);
        struct list_head *io = &cur_trans->io_bgs;
 
        path = btrfs_alloc_path();
@@ -3653,7 +3648,6 @@ int btrfs_write_dirty_block_groups(struct btrfs_trans_handle *trans)
                btrfs_put_block_group(cache);
        }
 
-       btrfs_free_path(path);
        return ret;
 }
 
index 3dc5a35dd19b32b582bb0429afa825946242797a..4d02227e94989c801604e48de5fa524cd4473974 100644 (file)
@@ -4306,7 +4306,7 @@ int btrfs_insert_item(struct btrfs_trans_handle *trans, struct btrfs_root *root,
                      u32 data_size)
 {
        int ret = 0;
-       struct btrfs_path *path;
+       BTRFS_PATH_AUTO_FREE(path);
        struct extent_buffer *leaf;
        unsigned long ptr;
 
@@ -4320,7 +4320,6 @@ int btrfs_insert_item(struct btrfs_trans_handle *trans, struct btrfs_root *root,
                write_extent_buffer(leaf, data, ptr, data_size);
                btrfs_mark_buffer_dirty(trans, leaf);
        }
-       btrfs_free_path(path);
        return ret;
 }
 
index 1a65f209339b0bc47a6798ad863a97773c5985bc..3f1551d8a5c68bef0bda65f05831b1f82993cd12 100644 (file)
@@ -1211,7 +1211,7 @@ int btrfs_commit_inode_delayed_items(struct btrfs_trans_handle *trans,
                                     struct btrfs_inode *inode)
 {
        struct btrfs_delayed_node *delayed_node = btrfs_get_delayed_node(inode);
-       struct btrfs_path *path;
+       BTRFS_PATH_AUTO_FREE(path);
        struct btrfs_block_rsv *block_rsv;
        int ret;
 
@@ -1238,7 +1238,6 @@ int btrfs_commit_inode_delayed_items(struct btrfs_trans_handle *trans,
        ret = __btrfs_commit_inode_delayed_items(trans, path, delayed_node);
 
        btrfs_release_delayed_node(delayed_node);
-       btrfs_free_path(path);
        trans->block_rsv = block_rsv;
 
        return ret;
index 1c6ae187d6a25bc444b82977b6dc0426fe583426..9c9a48aeac5f5c83de1f644e509e7eb60fd810b1 100644 (file)
@@ -1087,13 +1087,12 @@ struct btrfs_root *btrfs_read_tree_root(struct btrfs_root *tree_root,
                                        const struct btrfs_key *key)
 {
        struct btrfs_root *root;
-       struct btrfs_path *path;
+       BTRFS_PATH_AUTO_FREE(path);
 
        path = btrfs_alloc_path();
        if (!path)
                return ERR_PTR(-ENOMEM);
        root = read_tree_root_path(tree_root, path, key);
-       btrfs_free_path(path);
 
        return root;
 }
index 4a6036e7fa83f6ce05d86cf7276bf7a8992467b4..ea440b87a013d32ae2683e0bb119b84f0852666b 100644 (file)
@@ -70,9 +70,8 @@ static int block_group_bits(struct btrfs_block_group *cache, u64 bits)
 int btrfs_lookup_data_extent(struct btrfs_fs_info *fs_info, u64 start, u64 len)
 {
        struct btrfs_root *root = btrfs_extent_root(fs_info, start);
-       int ret;
        struct btrfs_key key;
-       struct btrfs_path *path;
+       BTRFS_PATH_AUTO_FREE(path);
 
        path = btrfs_alloc_path();
        if (!path)
@@ -81,9 +80,7 @@ int btrfs_lookup_data_extent(struct btrfs_fs_info *fs_info, u64 start, u64 len)
        key.objectid = start;
        key.type = BTRFS_EXTENT_ITEM_KEY;
        key.offset = len;
-       ret = btrfs_search_slot(NULL, root, &key, path, 0, 0);
-       btrfs_free_path(path);
-       return ret;
+       return btrfs_search_slot(NULL, root, &key, path, 0, 0);
 }
 
 /*
@@ -1487,7 +1484,7 @@ static int __btrfs_inc_extent_ref(struct btrfs_trans_handle *trans,
                                  struct btrfs_delayed_ref_node *node,
                                  struct btrfs_delayed_extent_op *extent_op)
 {
-       struct btrfs_path *path;
+       BTRFS_PATH_AUTO_FREE(path);
        struct extent_buffer *leaf;
        struct btrfs_extent_item *item;
        struct btrfs_key key;
@@ -1508,7 +1505,7 @@ static int __btrfs_inc_extent_ref(struct btrfs_trans_handle *trans,
                                           node->parent, node->ref_root, owner,
                                           offset, refs_to_add, extent_op);
        if ((ret < 0 && ret != -EAGAIN) || !ret)
-               goto out;
+               return ret;
 
        /*
         * Ok we had -EAGAIN which means we didn't have space to insert and
@@ -1533,8 +1530,7 @@ static int __btrfs_inc_extent_ref(struct btrfs_trans_handle *trans,
 
        if (ret)
                btrfs_abort_transaction(trans, ret);
-out:
-       btrfs_free_path(path);
+
        return ret;
 }
 
@@ -5465,7 +5461,7 @@ static int check_ref_exists(struct btrfs_trans_handle *trans,
 {
        struct btrfs_delayed_ref_root *delayed_refs;
        struct btrfs_delayed_ref_head *head;
-       struct btrfs_path *path;
+       BTRFS_PATH_AUTO_FREE(path);
        struct btrfs_extent_inline_ref *iref;
        int ret;
        bool exists = false;
@@ -5482,7 +5478,6 @@ again:
                 * If we get 0 then we found our reference, return 1, else
                 * return the error if it's not -ENOENT;
                 */
-               btrfs_free_path(path);
                return (ret < 0 ) ? ret : 1;
        }
 
@@ -5517,7 +5512,6 @@ again:
        mutex_unlock(&head->mutex);
 out:
        spin_unlock(&delayed_refs->lock);
-       btrfs_free_path(path);
        return exists ? 1 : 0;
 }
 
@@ -6285,7 +6279,7 @@ int btrfs_drop_subtree(struct btrfs_trans_handle *trans,
                        struct extent_buffer *parent)
 {
        struct btrfs_fs_info *fs_info = root->fs_info;
-       struct btrfs_path *path;
+       BTRFS_PATH_AUTO_FREE(path);
        struct walk_control *wc;
        int level;
        int parent_level;
@@ -6298,10 +6292,8 @@ int btrfs_drop_subtree(struct btrfs_trans_handle *trans,
                return -ENOMEM;
 
        wc = kzalloc(sizeof(*wc), GFP_NOFS);
-       if (!wc) {
-               btrfs_free_path(path);
+       if (!wc)
                return -ENOMEM;
-       }
 
        btrfs_assert_tree_write_locked(parent);
        parent_level = btrfs_header_level(parent);
@@ -6338,7 +6330,6 @@ int btrfs_drop_subtree(struct btrfs_trans_handle *trans,
        }
 
        kfree(wc);
-       btrfs_free_path(path);
        return ret;
 }
 
index 5083025d28b2276a5041a9eb52a3ef8411a125ad..2d2244b325061dad6f72a986fa340579334742ee 100644 (file)
@@ -163,7 +163,7 @@ int btrfs_insert_hole_extent(struct btrfs_trans_handle *trans,
        int ret = 0;
        struct btrfs_file_extent_item *item;
        struct btrfs_key file_key;
-       struct btrfs_path *path;
+       BTRFS_PATH_AUTO_FREE(path);
        struct extent_buffer *leaf;
 
        path = btrfs_alloc_path();
@@ -177,7 +177,7 @@ int btrfs_insert_hole_extent(struct btrfs_trans_handle *trans,
        ret = btrfs_insert_empty_item(trans, root, path, &file_key,
                                      sizeof(*item));
        if (ret < 0)
-               goto out;
+               return ret;
        leaf = path->nodes[0];
        item = btrfs_item_ptr(leaf, path->slots[0],
                              struct btrfs_file_extent_item);
@@ -191,8 +191,7 @@ int btrfs_insert_hole_extent(struct btrfs_trans_handle *trans,
        btrfs_set_file_extent_compression(leaf, item, 0);
        btrfs_set_file_extent_encryption(leaf, item, 0);
        btrfs_set_file_extent_other_encoding(leaf, item, 0);
-out:
-       btrfs_free_path(path);
+
        return ret;
 }
 
@@ -875,7 +874,7 @@ int btrfs_del_csums(struct btrfs_trans_handle *trans,
                    struct btrfs_root *root, u64 bytenr, u64 len)
 {
        struct btrfs_fs_info *fs_info = trans->fs_info;
-       struct btrfs_path *path;
+       BTRFS_PATH_AUTO_FREE(path);
        struct btrfs_key key;
        u64 end_byte = bytenr + len;
        u64 csum_end;
@@ -1011,7 +1010,6 @@ int btrfs_del_csums(struct btrfs_trans_handle *trans,
                }
                btrfs_release_path(path);
        }
-       btrfs_free_path(path);
        return ret;
 }