btrfs: abort transaction if we fail to update inode in log replay dir fixup

If we fail to update the inode at link_to_fixup_dir(), we don't abort the
transaction and propagate the error up the call chain, which makes it hard
to pinpoint the error to the inode update. So abort the transaction if the
inode update call fails, so that if it happens we known immediately.

Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
Filipe Manana 2025-09-03 17:43:04 +01:00 committed by David Sterba
parent 0b7453b7a1
commit 5a0565cad3

View File

@ -1849,6 +1849,8 @@ static noinline int link_to_fixup_dir(struct walk_control *wc, u64 objectid)
else
inc_nlink(vfs_inode);
ret = btrfs_update_inode(trans, inode);
if (ret)
btrfs_abort_transaction(trans, ret);
} else if (ret == -EEXIST) {
ret = 0;
} else {