]> git.dujemihanovic.xyz Git - linux.git/commitdiff
bcachefs: fix leak in bch2_gc_write_reflink_key
authorKent Overstreet <kent.overstreet@linux.dev>
Wed, 17 Apr 2024 06:17:21 +0000 (02:17 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Wed, 17 Apr 2024 21:29:58 +0000 (17:29 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/btree_gc.c

index ecbd9598f69fd00e86efbe7537a134d6d4c4db06..791470b0c654553e2fbb9216fb60df1eb8c5fec2 100644 (file)
@@ -1587,7 +1587,7 @@ static int bch2_gc_write_reflink_key(struct btree_trans *trans,
                struct bkey_i *new = bch2_bkey_make_mut_noupdate(trans, k);
                ret = PTR_ERR_OR_ZERO(new);
                if (ret)
-                       return ret;
+                       goto out;
 
                if (!r->refcount)
                        new->k.type = KEY_TYPE_deleted;
@@ -1595,6 +1595,7 @@ static int bch2_gc_write_reflink_key(struct btree_trans *trans,
                        *bkey_refcount(bkey_i_to_s(new)) = cpu_to_le64(r->refcount);
                ret = bch2_trans_update(trans, iter, new, 0);
        }
+out:
 fsck_err:
        printbuf_exit(&buf);
        return ret;