f2fs: fix wrong return value of f2fs_acl_create
PATCH 1/1 f2fs: fix wrong return value of f2fs_acl_create
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()").
--- fs/f2fs/acl.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-)
fs/f2fs/acl.c +6 -5
@@ -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) - 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:posix_acl_release (clone); -no_mem: +err_release:posix_acl_release (p); -return -ENOMEM ; +return ret; } int f2fs_init_acl(struct inode *inode, struct inode *dir, struct page *ipage,
Signature · 1 line
1.8.3.1
Quoted 16 lines · Tiezhu Yang
When call
f2fs_acl_create_masq()failed, the callerf2fs_acl_create()should return-EIOinstead of-ENOMEM, this patch makes it consistent withposix_acl_create()which has been fixed in commitbeaf226b863a("posix_acl: don't ignore return value ofposix_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(-)fs/f2fs/acl.c +0
-0
fs/f2fs/acl.c static int f2fs_acl_create(struct inode *dir, umode_t *mode, · line 356
Quoted 6 lines
fs/f2fs/acl.c +1
-0@@ -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;
}Quoted 11 lines
fs/f2fs/acl.c +2
-2- 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);
fs/f2fs/acl.c static int f2fs_acl_create(struct inode *dir, umode_t *mode, · line 375
Quoted 5 lines
fs/f2fs/acl.c +1
-1@@ -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:
fs/f2fs/acl.c static int f2fs_acl_create(struct inode *dir, umode_t *mode, · line 377
Quoted 3 lines
fs/f2fs/acl.c +1
-1posix_acl_release (clone); -no_mem: +err_release:
release_acl:
Tag naming is minor, anyway this patch looks good to me.
Thanks,
Quoted 7 lines
fs/f2fs/acl.c +1
-1posix_acl_release (p); -return -ENOMEM ; +return ret; } int f2fs_init_acl(struct inode *inode, struct inode *dir, struct page *ipage,
Quoted 51 lines · Chao Yu
Quoted 16 lines · Tiezhu Yang
When call
f2fs_acl_create_masq()failed, the callerf2fs_acl_create()should return-EIOinstead of-ENOMEM, this patch makes it consistent withposix_acl_create()which has been fixed in commitbeaf226b863a("posix_acl: don't ignore return value ofposix_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(-)fs/f2fs/acl.c +0
-0fs/f2fs/acl.c static int f2fs_acl_create(struct inode *dir, umode_t *mode, · line 356
Quoted 6 lines
fs/f2fs/acl.c +1
-0@@ -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; }Quoted 11 lines
fs/f2fs/acl.c +2
-2- 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);fs/f2fs/acl.c static int f2fs_acl_create(struct inode *dir, umode_t *mode, · line 375
Quoted 5 lines
fs/f2fs/acl.c +1
-1@@ -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:
Quoted 7 lines
fs/f2fs/acl.c static int f2fs_acl_create(struct inode *dir, umode_t *mode, · line 377
Quoted 3 lines
fs/f2fs/acl.c +1
-1posix_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,
Quoted 12 lines
Reviewed-by Chao Yu <[email protected]>Thanks,
Quoted 7 lines
fs/f2fs/acl.c +1
-1posix_acl_release (p); -return -ENOMEM ; +return ret; } int f2fs_init_acl(struct inode *inode, struct inode *dir, struct page *ipage,