Re: [f2fs-dev] [PATCH v2] f2fs: cleanup in f2fs_create_flush_cmd_control()

2022-10-25 Thread Chao Yu

On 2022/10/25 15:56, Yangtao Li wrote:

Remove the local 'err' variable for readable,
no functional changes.

Signed-off-by: Yangtao Li 
---
  fs/f2fs/segment.c | 10 --
  1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
index acf3d3fa4363..ed247195a20c 100644
--- a/fs/f2fs/segment.c
+++ b/fs/f2fs/segment.c
@@ -620,12 +620,11 @@ int f2fs_create_flush_cmd_control(struct f2fs_sb_info 
*sbi)
  {
dev_t dev = sbi->sb->s_bdev->bd_dev;
struct flush_cmd_control *fcc;
-   int err = 0;
  
  	if (SM_I(sbi)->fcc_info) {

fcc = SM_I(sbi)->fcc_info;
if (fcc->f2fs_issue_flush)
-   return err;
+   return 0;
goto init_thread;
}
  
@@ -638,19 +637,18 @@ int f2fs_create_flush_cmd_control(struct f2fs_sb_info *sbi)

init_llist_head(>issue_list);
SM_I(sbi)->fcc_info = fcc;
if (!test_opt(sbi, FLUSH_MERGE))
-   return err;
+   return 0;
  
  init_thread:

fcc->f2fs_issue_flush = kthread_run(issue_flush_thread, sbi,
"f2fs_flush-%u:%u", MAJOR(dev), MINOR(dev));
if (IS_ERR(fcc->f2fs_issue_flush)) {
-   err = PTR_ERR(fcc->f2fs_issue_flush);
kfree(fcc);
SM_I(sbi)->fcc_info = NULL;
-   return err;
+   return PTR_ERR(fcc->f2fs_issue_flush);


It will cause use-after-free issue.

Thanks,


}
  
-	return err;

+   return 0;
  }
  
  void f2fs_destroy_flush_cmd_control(struct f2fs_sb_info *sbi, bool free)



___
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel


[f2fs-dev] [PATCH v2] f2fs: cleanup in f2fs_create_flush_cmd_control()

2022-10-25 Thread Yangtao Li via Linux-f2fs-devel
Remove the local 'err' variable for readable,
no functional changes.

Signed-off-by: Yangtao Li 
---
 fs/f2fs/segment.c | 10 --
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
index acf3d3fa4363..ed247195a20c 100644
--- a/fs/f2fs/segment.c
+++ b/fs/f2fs/segment.c
@@ -620,12 +620,11 @@ int f2fs_create_flush_cmd_control(struct f2fs_sb_info 
*sbi)
 {
dev_t dev = sbi->sb->s_bdev->bd_dev;
struct flush_cmd_control *fcc;
-   int err = 0;
 
if (SM_I(sbi)->fcc_info) {
fcc = SM_I(sbi)->fcc_info;
if (fcc->f2fs_issue_flush)
-   return err;
+   return 0;
goto init_thread;
}
 
@@ -638,19 +637,18 @@ int f2fs_create_flush_cmd_control(struct f2fs_sb_info 
*sbi)
init_llist_head(>issue_list);
SM_I(sbi)->fcc_info = fcc;
if (!test_opt(sbi, FLUSH_MERGE))
-   return err;
+   return 0;
 
 init_thread:
fcc->f2fs_issue_flush = kthread_run(issue_flush_thread, sbi,
"f2fs_flush-%u:%u", MAJOR(dev), MINOR(dev));
if (IS_ERR(fcc->f2fs_issue_flush)) {
-   err = PTR_ERR(fcc->f2fs_issue_flush);
kfree(fcc);
SM_I(sbi)->fcc_info = NULL;
-   return err;
+   return PTR_ERR(fcc->f2fs_issue_flush);
}
 
-   return err;
+   return 0;
 }
 
 void f2fs_destroy_flush_cmd_control(struct f2fs_sb_info *sbi, bool free)
-- 
2.25.1



___
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel