]> www.infradead.org Git - users/hch/misc.git/commitdiff
btrfs: deduplicate log root free in error paths from btrfs_recover_log_trees()
authorFilipe Manana <fdmanana@suse.com>
Tue, 26 Aug 2025 16:30:16 +0000 (17:30 +0100)
committerDavid Sterba <dsterba@suse.com>
Tue, 23 Sep 2025 06:49:18 +0000 (08:49 +0200)
Instead of duplicating the dropping of a log tree in case we jump to the
'error' label, move the dropping under the 'error' label and get rid of the
the unnecessary setting of the log root to NULL since we return immediately
after.

Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/tree-log.c

index 7d1b21df698d9fb2ab852ed5a542f2906b1cac7f..f039f0613a38b7a105c1afc860fe5266bc01631d 100644 (file)
@@ -7491,8 +7491,6 @@ again:
                        ret = PTR_ERR(wc.root);
                        wc.root = NULL;
                        if (ret != -ENOENT) {
-                               btrfs_put_root(wc.log);
-                               wc.log = NULL;
                                btrfs_abort_transaction(trans, ret);
                                goto error;
                        }
@@ -7510,8 +7508,6 @@ again:
                         */
                        ret = btrfs_pin_extent_for_log_replay(trans, wc.log->node);
                        if (ret) {
-                               btrfs_put_root(wc.log);
-                               wc.log = NULL;
                                btrfs_abort_transaction(trans, ret);
                                goto error;
                        }
@@ -7597,6 +7593,7 @@ next:
 error:
        if (wc.trans)
                btrfs_end_transaction(wc.trans);
+       btrfs_put_root(wc.log);
        clear_bit(BTRFS_FS_LOG_RECOVERING, &fs_info->flags);
        btrfs_free_path(path);
        return ret;