FAILED: patch "[PATCH] btrfs: abort transaction after failed inode updates in" failed to apply to 4.4-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 4.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From c7e54b5102bf3614cadb9ca32d7be73bad6cecf0 Mon Sep 17 00:00:00 2001
From: Josef Bacik <[email protected]>
Date: Fri, 6 Dec 2019 09:37:15 -0500
Subject: [PATCH] btrfs: abort transaction after failed inode updates in
create_subvol
We can just abort the transaction here, and in fact do that for every other failure in this function except these two cases.
CC [email protected] # 4.4+
Reviewed-by Filipe Manana <[email protected]>
Reviewed-by Johannes Thumshirn <[email protected]>
Signed-off-by Josef Bacik <[email protected]>
Reviewed-by David Sterba <[email protected]>
Signed-off-by David Sterba <[email protected]>
fs/btrfs/ioctl.c +8 -2
@@ -704,11 +704,17 @@ static noinline int create_subvol(struct inode *dir,btrfs_i_size_write (BTRFS_I (dir), dir->i_size + namelen *2 ); ret =btrfs_update_inode (trans, root, dir); -BUG_ON (ret); +if (ret) { +btrfs_abort_transaction (trans, ret); + goto fail; + } ret =btrfs_add_root_ref (trans, objectid, root->root_key.objectid,btrfs_ino (BTRFS_I (dir)), index, name, namelen); -BUG_ON (ret); +if (ret) { +btrfs_abort_transaction (trans, ret); + goto fail; + } ret =btrfs_uuid_tree_add (trans, root_item->uuid,BTRFS_UUID_KEY_SUBVOL , objectid);