mirror of https://gitee.com/openkylin/linux.git
btrfs: abort transaction if we fail to update the delayed inode
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>
This commit is contained in:
parent
bb385bedde
commit
04587ad9be
|
@ -1051,6 +1051,14 @@ static int __btrfs_update_delayed_inode(struct btrfs_trans_handle *trans,
|
|||
btrfs_delayed_inode_release_metadata(fs_info, node, (ret < 0));
|
||||
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;
|
||||
|
||||
search:
|
||||
|
|
Loading…
Reference in New Issue