On 5/9/17 4:34 AM, Nikolay Borisov wrote: > Following the factoring out of the creation code udpate_space_info can only > be called for already-existing space_info structs. As such it cannot fail. > Remove superfulous error handling and make the function return void. > > Signed-off-by: Nikolay Borisov <nbori...@suse.com> > --- > fs/btrfs/extent-tree.c | 53 > ++++++++++++++------------------------------------ > 1 file changed, 15 insertions(+), 38 deletions(-) > > diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c > index e71921d8c610..3ab1f88af038 100644 > --- a/fs/btrfs/extent-tree.c > +++ b/fs/btrfs/extent-tree.c > @@ -3958,7 +3958,7 @@ static int create_space_info(struct btrfs_fs_info > *info, u64 flags, > return ret; > } > > -static int update_space_info(struct btrfs_fs_info *info, u64 flags, > +static void update_space_info(struct btrfs_fs_info *info, u64 flags, > u64 total_bytes, u64 bytes_used, > u64 bytes_readonly, > struct btrfs_space_info **space_info)
Since we don't have any errors to report anymore, let's just return the space_info directly instead of passing it back via parameter. > @@ -3973,21 +3973,18 @@ static int update_space_info(struct btrfs_fs_info > *info, u64 flags, > factor = 1; > > found = __find_space_info(info, flags); BUG_ON(!found); > - if (found) { > - spin_lock(&found->lock); > - found->total_bytes += total_bytes; > - found->disk_total += total_bytes * factor; > - found->bytes_used += bytes_used; > - found->disk_used += bytes_used * factor; > - found->bytes_readonly += bytes_readonly; > - if (total_bytes > 0) > - found->full = 0; > - space_info_add_new_bytes(info, found, total_bytes - > - bytes_used - bytes_readonly); > - spin_unlock(&found->lock); > - *space_info = found; > - return 0; > - } > + spin_lock(&found->lock); > + found->total_bytes += total_bytes; > + found->disk_total += total_bytes * factor; > + found->bytes_used += bytes_used; > + found->disk_used += bytes_used * factor; > + found->bytes_readonly += bytes_readonly; > + if (total_bytes > 0) > + found->full = 0; > + space_info_add_new_bytes(info, found, total_bytes - > + bytes_used - bytes_readonly); > + spin_unlock(&found->lock); > + *space_info = found; > } > > static void set_avail_alloc_bits(struct btrfs_fs_info *fs_info, u64 flags) > @@ -10041,19 +10038,9 @@ int btrfs_read_block_groups(struct btrfs_fs_info > *info) > } > > trace_btrfs_add_block_group(info, cache, 0); > - ret = update_space_info(info, cache->flags, found_key.offset, > + update_space_info(info, cache->flags, found_key.offset, > btrfs_block_group_used(&cache->item), > cache->bytes_super, &space_info); Whitespace needs adjusting too. > - if (ret) { > - btrfs_remove_free_space_cache(cache); > - spin_lock(&info->block_group_cache_lock); > - rb_erase(&cache->cache_node, > - &info->block_group_cache_tree); > - RB_CLEAR_NODE(&cache->cache_node); > - spin_unlock(&info->block_group_cache_lock); > - btrfs_put_block_group(cache); > - goto error; > - } > > cache->space_info = space_info; > > @@ -10212,18 +10199,8 @@ int btrfs_make_block_group(struct btrfs_trans_handle > *trans, > * the rbtree, update the space info's counters. > */ > trace_btrfs_add_block_group(fs_info, cache, 1); > - ret = update_space_info(fs_info, cache->flags, size, bytes_used, > + update_space_info(fs_info, cache->flags, size, bytes_used, > cache->bytes_super, &cache->space_info); Same. > - if (ret) { > - btrfs_remove_free_space_cache(cache); > - spin_lock(&fs_info->block_group_cache_lock); > - rb_erase(&cache->cache_node, > - &fs_info->block_group_cache_tree); > - RB_CLEAR_NODE(&cache->cache_node); > - spin_unlock(&fs_info->block_group_cache_lock); > - btrfs_put_block_group(cache); > - return ret; > - } > update_global_block_rsv(fs_info); > > __link_block_group(cache->space_info, cache); > Otherwise, looks good. With those changes, you can add: Reviewed-by: Jeff Mahoney <je...@suse.com> -Jeff -- Jeff Mahoney SUSE Labs
signature.asc
Description: OpenPGP digital signature