btrfs: Don't BUG_ON errors from btrfs_create_subvol_root()
This is called from only one place - create_subvol() which passes errors safely back out to it's caller, btrfs_mksubvol where they are handled. Additionally, btrfs_create_subvol_root() itself bug's needlessly from error return of btrfs_update_inode(). Since create_subvol() was fixed to catch errors we can bubble this one up too. Signed-off-by: Mark Fasheh <mfasheh@suse.com>
This commit is contained in:
Родитель
2c536799f1
Коммит
ce598979be
|
@ -6734,10 +6734,9 @@ int btrfs_create_subvol_root(struct btrfs_trans_handle *trans,
|
|||
btrfs_i_size_write(inode, 0);
|
||||
|
||||
err = btrfs_update_inode(trans, new_root, inode);
|
||||
BUG_ON(err);
|
||||
|
||||
iput(inode);
|
||||
return 0;
|
||||
return err;
|
||||
}
|
||||
|
||||
struct inode *btrfs_alloc_inode(struct super_block *sb)
|
||||
|
|
|
@ -430,6 +430,11 @@ static noinline int create_subvol(struct btrfs_root *root,
|
|||
btrfs_record_root_in_trans(trans, new_root);
|
||||
|
||||
ret = btrfs_create_subvol_root(trans, new_root, new_dirid);
|
||||
if (ret) {
|
||||
/* We potentially lose an unused inode item here */
|
||||
goto fail;
|
||||
}
|
||||
|
||||
/*
|
||||
* insert the directory item
|
||||
*/
|
||||
|
|
Загрузка…
Ссылка в новой задаче