]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
bcachefs: Fix leak in bch2_fs_recovery() error path
authorKent Overstreet <kent.overstreet@linux.dev>
Mon, 9 Jun 2025 21:30:40 +0000 (17:30 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Thu, 12 Jun 2025 03:21:30 +0000 (23:21 -0400)
Fix a small leak of the superblock 'clean' section.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/recovery.c

index 520eb72c49712c77cab56f71e4f9e31834d4164d..0b21fa6ff062bacf24f6834b323b4614c95cd9d7 100644 (file)
@@ -1108,9 +1108,6 @@ use_clean:
 out:
        bch2_flush_fsck_errs(c);
 
-       if (!IS_ERR(clean))
-               kfree(clean);
-
        if (!ret &&
            test_bit(BCH_FS_need_delete_dead_snapshots, &c->flags) &&
            !c->opts.nochanges) {
@@ -1119,6 +1116,9 @@ out:
        }
 
        bch_err_fn(c, ret);
+final_out:
+       if (!IS_ERR(clean))
+               kfree(clean);
        return ret;
 err:
 fsck_err:
@@ -1132,7 +1132,7 @@ fsck_err:
                bch2_print_str(c, KERN_ERR, buf.buf);
                printbuf_exit(&buf);
        }
-       return ret;
+       goto final_out;
 }
 
 int bch2_fs_initialize(struct bch_fs *c)