btrfs: abort transaction if we fail to update the delayed inode
[ Upstream commit 04587ad9bef6ce9d510325b4ba9852b6129eebdb ] If we fail to update the delayed inode we need to abort the transaction, because we could leave an inode with the improper counts or some other such corruption behind. Signed-off-by: Josef Bacik <josef@toxicpanda.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
e0ffb169a3
commit
8d05e30c97
@@ -1073,6 +1073,14 @@ err_out:
|
|||||||
btrfs_delayed_inode_release_metadata(fs_info, node, (ret < 0));
|
btrfs_delayed_inode_release_metadata(fs_info, node, (ret < 0));
|
||||||
btrfs_release_delayed_inode(node);
|
btrfs_release_delayed_inode(node);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If we fail to update the delayed inode we need to abort the
|
||||||
|
* transaction, because we could leave the inode with the improper
|
||||||
|
* counts behind.
|
||||||
|
*/
|
||||||
|
if (ret && ret != -ENOENT)
|
||||||
|
btrfs_abort_transaction(trans, ret);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
search:
|
search:
|
||||||
|
Reference in New Issue
Block a user