Commit 221581e4 authored by Josef Bacik's avatar Josef Bacik Committed by David Sterba

btrfs: handle btrfs_record_root_in_trans failure in create_subvol

btrfs_record_root_in_trans will return errors in the future, so handle
the error properly in create_subvol.
Signed-off-by: default avatarJosef Bacik <josef@toxicpanda.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 2002ae11
...@@ -721,7 +721,12 @@ static noinline int create_subvol(struct inode *dir, ...@@ -721,7 +721,12 @@ static noinline int create_subvol(struct inode *dir,
/* Freeing will be done in btrfs_put_root() of new_root */ /* Freeing will be done in btrfs_put_root() of new_root */
anon_dev = 0; anon_dev = 0;
btrfs_record_root_in_trans(trans, new_root); ret = btrfs_record_root_in_trans(trans, new_root);
if (ret) {
btrfs_put_root(new_root);
btrfs_abort_transaction(trans, ret);
goto fail;
}
ret = btrfs_create_subvol_root(trans, new_root, root); ret = btrfs_create_subvol_root(trans, new_root, root);
btrfs_put_root(new_root); btrfs_put_root(new_root);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment