At 2018-11-20 20:07:55, "Chao Yu" <[email protected]> wrote: >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.
Thanks for your suggestion, I will send a v2 patch. Thanks, > >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
