On Mon, Feb 25, 2019 at 01:07:42PM -0600, Goldwyn Rodrigues wrote:
> From: Goldwyn Rodrigues <rgold...@suse.com>
> 
> io_ctl_init() memsets it to zero anyways. However, I presume the
> memset was added to avoid the WARN_ON in io_ctl_init().

I don't see any WARN_ON in io_ctl_init, you probably mean
__btrfs_write_out_cache.
> 
> Signed-off-by: Goldwyn Rodrigues <rgold...@suse.com>
> ---
>  fs/btrfs/free-space-cache.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/fs/btrfs/free-space-cache.c b/fs/btrfs/free-space-cache.c
> index 74aa552f4793..c813378ebf08 100644
> --- a/fs/btrfs/free-space-cache.c
> +++ b/fs/btrfs/free-space-cache.c
> @@ -3544,13 +3544,12 @@ int btrfs_write_out_ino_cache(struct btrfs_root *root,
>       struct btrfs_fs_info *fs_info = root->fs_info;
>       struct btrfs_free_space_ctl *ctl = root->free_ino_ctl;
>       int ret;
> -     struct btrfs_io_ctl io_ctl;
> +     struct btrfs_io_ctl io_ctl = {0};

Doesn't this zero the bytes unconditionally? The memset below happens
only when the inode cache is on.

>       bool release_metadata = true;
>  
>       if (!btrfs_test_opt(fs_info, INODE_MAP_CACHE))
>               return 0;
>  
> -     memset(&io_ctl, 0, sizeof(io_ctl));
>       ret = __btrfs_write_out_cache(root, inode, ctl, NULL, &io_ctl, trans);
>       if (!ret) {
>               /*
> -- 
> 2.16.4

Reply via email to