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