On 2018-11-20 5:38, Tiezhu Yang wrote:
> When call f2fs_acl_create_masq() failed, the caller f2fs_acl_create()
> should return -EIO instead of -ENOMEM, this patch makes it consistent
> with posix_acl_create() which has been fixed in commit beaf226b863a
> ("posix_acl: don't ignore return value of posix_acl_create_masq()").
> 
> Fixes: 83dfe53c185e ("f2fs: fix reference leaks in f2fs_acl_create")
> Signed-off-by: Tiezhu Yang <[email protected]>
> ---
>  fs/f2fs/acl.c | 11 ++++++-----
>  1 file changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/fs/f2fs/acl.c b/fs/f2fs/acl.c
> index fa707cd..b791c24 100644
> --- a/fs/f2fs/acl.c
> +++ b/fs/f2fs/acl.c
> @@ -351,13 +351,14 @@ static int f2fs_acl_create(struct inode *dir, umode_t 
> *mode,
>       if (IS_ERR(p))
>               return PTR_ERR(p);
>  
> +     ret = -ENOMEM;
>       clone = f2fs_acl_clone(p, GFP_NOFS);
>       if (!clone)

We can avoid assigning ret by:

clone = f2fs_acl_clone(p, GFP_NOFS);
if (!clone) {
        ret = -ENOMEM;
        goto release_acl;
}

> -             goto no_mem;
> +             goto err_release;
>  
>       ret = f2fs_acl_create_masq(clone, mode);
>       if (ret < 0)
> -             goto no_mem_clone;
> +             goto err_release_clone;
>  
>       if (ret == 0)
>               posix_acl_release(clone);
> @@ -371,11 +372,11 @@ static int f2fs_acl_create(struct inode *dir, umode_t 
> *mode,
>  
>       return 0;
>  
> -no_mem_clone:
> +err_release_clone:

release_clone:

>       posix_acl_release(clone);
> -no_mem:
> +err_release:

release_acl:

Tag naming is minor, anyway this patch looks good to me.

Reviewed-by: Chao Yu <[email protected]>

Thanks,

>       posix_acl_release(p);
> -     return -ENOMEM;
> +     return ret;
>  }
>  
>  int f2fs_init_acl(struct inode *inode, struct inode *dir, struct page *ipage,
> 


_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to