bcachefs: Fix a btree iterator leak
authorKent Overstreet <kent.overstreet@gmail.com>
Tue, 16 Mar 2021 01:18:50 +0000 (21:18 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:56 +0000 (17:08 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/btree_iter.c
fs/bcachefs/reflink.c

index 35480ba43621e288fe99efc9be882c8dab21fb30..70828d8876f9fc17e97c75c061dbb78eaca3bdca 100644 (file)
@@ -1992,7 +1992,7 @@ static void btree_trans_iter_alloc_fail(struct btree_trans *trans)
        char buf[100];
 
        trans_for_each_iter(trans, iter)
-               printk(KERN_ERR "iter: btree %s pos %s%s%s%s %ps\n",
+               printk(KERN_ERR "iter: btree %s pos %s%s%s%s %pS\n",
                       bch2_btree_ids[iter->btree_id],
                       (bch2_bpos_to_text(&PBUF(buf), iter->pos), buf),
                       btree_iter_live(trans, iter) ? " live" : "",
index e0eb2c66300c1283940c08e545461349c6c43c94..e9a6a5f639b4a8d0dd47d8ca59c691a2298e3b4f 100644 (file)
@@ -157,8 +157,10 @@ static int bch2_make_extent_indirect(struct btree_trans *trans,
        bch2_trans_update(trans, reflink_iter, r_v, 0);
 
        r_p = bch2_trans_kmalloc(trans, sizeof(*r_p));
-       if (IS_ERR(r_p))
-               return PTR_ERR(r_p);
+       if (IS_ERR(r_p)) {
+               ret = PTR_ERR(r_p);
+               goto err;
+       }
 
        orig->k.type = KEY_TYPE_reflink_p;
        r_p = bkey_i_to_reflink_p(orig);