Re: [PATCH v4] btrfs: Add helper function for free_root_pointers()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I've already pulled v3 into btrfs-next, for this I prefer v3.  Thanks,

Josef

> On Nov 2, 2013, at 2:24 PM, Rashika Kheria <rashika.kheria@xxxxxxxxx> wrote:
> 
> The function free_root_pointers() in disk-io.h contains redundant code.
> Therefore, this patch adds a helper function free_root_extent_buffers()
> to free_root_pointers() to eliminate redundancy
> 
> Signed-off-by: Rashika Kheria <rashika.kheria@xxxxxxxxx>
> Reviewed-by: Zach Brown <zab@xxxxxxxxxx>
> Reviewed-by: Josh Triplett <josh@xxxxxxxxxxxxxxxx>
> ---
> 
> This revision fixes the following issues of the previous revision-
> Early return when root is NULL
> 
> fs/btrfs/disk-io.c |   60 +++++++++++++++++-----------------------------------
> 1 file changed, 19 insertions(+), 41 deletions(-)
> 
> diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
> index 62176ad..f719394 100644
> --- a/fs/btrfs/disk-io.c
> +++ b/fs/btrfs/disk-io.c
> @@ -2013,50 +2013,28 @@ static void btrfs_stop_all_workers(struct btrfs_fs_info *fs_info)
>    btrfs_stop_workers(&fs_info->qgroup_rescan_workers);
> }
> 
> +static void free_root_extent_buffers(struct btrfs_root *root)
> +{
> +    if (!root)
> +        return;
> +    free_extent_buffer(root->node);
> +    free_extent_buffer(root->commit_root);
> +    root->node = NULL;
> +    root->commit_root = NULL;
> +}
> +
> /* helper to cleanup tree roots */
> static void free_root_pointers(struct btrfs_fs_info *info, int chunk_root)
> {
> -    free_extent_buffer(info->tree_root->node);
> -    free_extent_buffer(info->tree_root->commit_root);
> -    info->tree_root->node = NULL;
> -    info->tree_root->commit_root = NULL;
> -
> -    if (info->dev_root) {
> -        free_extent_buffer(info->dev_root->node);
> -        free_extent_buffer(info->dev_root->commit_root);
> -        info->dev_root->node = NULL;
> -        info->dev_root->commit_root = NULL;
> -    }
> -    if (info->extent_root) {
> -        free_extent_buffer(info->extent_root->node);
> -        free_extent_buffer(info->extent_root->commit_root);
> -        info->extent_root->node = NULL;
> -        info->extent_root->commit_root = NULL;
> -    }
> -    if (info->csum_root) {
> -        free_extent_buffer(info->csum_root->node);
> -        free_extent_buffer(info->csum_root->commit_root);
> -        info->csum_root->node = NULL;
> -        info->csum_root->commit_root = NULL;
> -    }
> -    if (info->quota_root) {
> -        free_extent_buffer(info->quota_root->node);
> -        free_extent_buffer(info->quota_root->commit_root);
> -        info->quota_root->node = NULL;
> -        info->quota_root->commit_root = NULL;
> -    }
> -    if (info->uuid_root) {
> -        free_extent_buffer(info->uuid_root->node);
> -        free_extent_buffer(info->uuid_root->commit_root);
> -        info->uuid_root->node = NULL;
> -        info->uuid_root->commit_root = NULL;
> -    }
> -    if (chunk_root) {
> -        free_extent_buffer(info->chunk_root->node);
> -        free_extent_buffer(info->chunk_root->commit_root);
> -        info->chunk_root->node = NULL;
> -        info->chunk_root->commit_root = NULL;
> -    }
> +    free_root_extent_buffers(info->tree_root);
> +
> +    free_root_extent_buffers(info->dev_root);
> +    free_root_extent_buffers(info->extent_root);
> +    free_root_extent_buffers(info->csum_root);
> +    free_root_extent_buffers(info->quota_root);
> +    free_root_extent_buffers(info->uuid_root);
> +    if (chunk_root)
> +        free_root_extent_buffers(info->chunk_root);
> }
> 
> static void del_fs_roots(struct btrfs_fs_info *fs_info)
> -- 
> 1.7.9.5
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux