From: Josef Bacik Date: Fri, 21 May 2021 20:44:09 +0000 (-0400) Subject: btrfs: abort transaction if we fail to update the delayed inode X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=04587ad9bef6ce9d510325b4ba9852b6129eebdb;p=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 Reviewed-by: David Sterba Signed-off-by: David Sterba --- diff --git a/fs/btrfs/delayed-inode.c b/fs/btrfs/delayed-inode.c index bce7bdd7fe03b..2c18ed23aa275 100644 --- a/fs/btrfs/delayed-inode.c +++ b/fs/btrfs/delayed-inode.c @@ -1051,6 +1051,14 @@ err_out: 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: