bcachefs: Add better logging to fsck_rename_dirent()
authorKent Overstreet <kent.overstreet@linux.dev>
Fri, 30 May 2025 23:09:11 +0000 (19:09 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 1 Jun 2025 04:03:12 +0000 (00:03 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/str_hash.c

index f101ca8581d99c8475240626433ba30cd811a6d2..7b97852d1cdf8e80ec5ced766371e541593f03a0 100644 (file)
@@ -61,14 +61,19 @@ static noinline int fsck_rename_dirent(struct btree_trans *trans,
                                                (subvol_inum) { 0, old.k->p.inode },
                                                old.k->p.snapshot, &new->k_i,
                                                BTREE_UPDATE_internal_snapshot_node);
-               if (!bch2_err_matches(ret, EEXIST))
+               if (ret && !bch2_err_matches(ret, EEXIST))
+                       goto err;
+               if (!ret)
                        break;
        }
 
        if (ret)
-               return ret;
+               goto err;
 
-       return bch2_fsck_update_backpointers(trans, s, desc, hash_info, &new->k_i);
+       ret = bch2_fsck_update_backpointers(trans, s, desc, hash_info, &new->k_i);
+err:
+       bch_err_fn(trans->c, ret);
+       return ret;
 }
 
 static noinline int hash_pick_winner(struct btree_trans *trans,