btrfs: simplify error handling in __btrfs_write_out_cache()
The error cleanup gotos in __btrfs_write_out_cache() needlessly jump back making the code less readable then needed. Flatten them out so no back-jump is necessary and the read flow is uninterrupted. Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
Родитель
1afb648e94
Коммит
fd8efa818c
|
@ -1367,18 +1367,6 @@ static int __btrfs_write_out_cache(struct btrfs_root *root, struct inode *inode,
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
out:
|
|
||||||
io_ctl->inode = NULL;
|
|
||||||
io_ctl_free(io_ctl);
|
|
||||||
if (ret) {
|
|
||||||
invalidate_inode_pages2(inode->i_mapping);
|
|
||||||
BTRFS_I(inode)->generation = 0;
|
|
||||||
}
|
|
||||||
btrfs_update_inode(trans, root, inode);
|
|
||||||
if (must_iput)
|
|
||||||
iput(inode);
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
out_nospc_locked:
|
out_nospc_locked:
|
||||||
cleanup_bitmap_list(&bitmap_list);
|
cleanup_bitmap_list(&bitmap_list);
|
||||||
spin_unlock(&ctl->tree_lock);
|
spin_unlock(&ctl->tree_lock);
|
||||||
|
@ -1391,7 +1379,17 @@ out_unlock:
|
||||||
if (block_group && (block_group->flags & BTRFS_BLOCK_GROUP_DATA))
|
if (block_group && (block_group->flags & BTRFS_BLOCK_GROUP_DATA))
|
||||||
up_write(&block_group->data_rwsem);
|
up_write(&block_group->data_rwsem);
|
||||||
|
|
||||||
goto out;
|
out:
|
||||||
|
io_ctl->inode = NULL;
|
||||||
|
io_ctl_free(io_ctl);
|
||||||
|
if (ret) {
|
||||||
|
invalidate_inode_pages2(inode->i_mapping);
|
||||||
|
BTRFS_I(inode)->generation = 0;
|
||||||
|
}
|
||||||
|
btrfs_update_inode(trans, root, inode);
|
||||||
|
if (must_iput)
|
||||||
|
iput(inode);
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int btrfs_write_out_cache(struct btrfs_trans_handle *trans,
|
int btrfs_write_out_cache(struct btrfs_trans_handle *trans,
|
||||||
|
|
Загрузка…
Ссылка в новой задаче