Almost all other initialization of variables in f2fs_fill_super are
extraced to a single function. Also do it for write_io[], which can
make code more clean.

This patch just refactors the code, theres no functional change.

Signed-off-by: Yufen Yu <yuyu...@huawei.com>
---
 fs/f2fs/data.c  | 30 ++++++++++++++++++++++++++++++
 fs/f2fs/f2fs.h  |  1 +
 fs/f2fs/super.c | 27 +++------------------------
 3 files changed, 34 insertions(+), 24 deletions(-)

diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index 9a1a526f2092..ca560c046559 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -585,6 +585,36 @@ static bool __has_merged_page(struct bio *bio, struct 
inode *inode,
        return false;
 }
 
+int f2fs_init_write_merge_io(struct f2fs_sb_info *sbi)
+{
+       int i;
+
+       for (i = 0; i < NR_PAGE_TYPE; i++) {
+               int n = (i == META) ? 1 : NR_TEMP_TYPE;
+               int j;
+
+               sbi->write_io[i] =
+                       f2fs_kmalloc(sbi,
+                                        array_size(n,
+                                               sizeof(struct f2fs_bio_info)),
+                                        GFP_KERNEL);
+               if (!sbi->write_io[i])
+                       return -ENOMEM;
+
+               for (j = HOT; j < n; j++) {
+                       init_f2fs_rwsem(&sbi->write_io[i][j].io_rwsem);
+                       sbi->write_io[i][j].sbi = sbi;
+                       sbi->write_io[i][j].bio = NULL;
+                       spin_lock_init(&sbi->write_io[i][j].io_lock);
+                       INIT_LIST_HEAD(&sbi->write_io[i][j].io_list);
+                       INIT_LIST_HEAD(&sbi->write_io[i][j].bio_list);
+                       init_f2fs_rwsem(&sbi->write_io[i][j].bio_list_lock);
+               }
+       }
+
+       return 0;
+}
+
 static void __f2fs_submit_merged_write(struct f2fs_sb_info *sbi,
                                enum page_type type, enum temp_type temp)
 {
diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
index 2b2b3c87e45e..02e2dc17938c 100644
--- a/fs/f2fs/f2fs.h
+++ b/fs/f2fs/f2fs.h
@@ -3719,6 +3719,7 @@ int f2fs_init_bio_entry_cache(void);
 void f2fs_destroy_bio_entry_cache(void);
 void f2fs_submit_bio(struct f2fs_sb_info *sbi,
                                struct bio *bio, enum page_type type);
+int f2fs_init_write_merge_io(struct f2fs_sb_info *sbi);
 void f2fs_submit_merged_write(struct f2fs_sb_info *sbi, enum page_type type);
 void f2fs_submit_merged_write_cond(struct f2fs_sb_info *sbi,
                                struct inode *inode, struct page *page,
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index 912e99bc92e5..557c68956240 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -4070,30 +4070,9 @@ static int f2fs_fill_super(struct super_block *sb, void 
*data, int silent)
        set_sbi_flag(sbi, SBI_POR_DOING);
        spin_lock_init(&sbi->stat_lock);
 
-       for (i = 0; i < NR_PAGE_TYPE; i++) {
-               int n = (i == META) ? 1 : NR_TEMP_TYPE;
-               int j;
-
-               sbi->write_io[i] =
-                       f2fs_kmalloc(sbi,
-                                    array_size(n,
-                                               sizeof(struct f2fs_bio_info)),
-                                    GFP_KERNEL);
-               if (!sbi->write_io[i]) {
-                       err = -ENOMEM;
-                       goto free_bio_info;
-               }
-
-               for (j = HOT; j < n; j++) {
-                       init_f2fs_rwsem(&sbi->write_io[i][j].io_rwsem);
-                       sbi->write_io[i][j].sbi = sbi;
-                       sbi->write_io[i][j].bio = NULL;
-                       spin_lock_init(&sbi->write_io[i][j].io_lock);
-                       INIT_LIST_HEAD(&sbi->write_io[i][j].io_list);
-                       INIT_LIST_HEAD(&sbi->write_io[i][j].bio_list);
-                       init_f2fs_rwsem(&sbi->write_io[i][j].bio_list_lock);
-               }
-       }
+       err = f2fs_init_write_merge_io(sbi);
+       if (err)
+               goto free_bio_info;
 
        init_f2fs_rwsem(&sbi->cp_rwsem);
        init_f2fs_rwsem(&sbi->quota_sem);
-- 
2.31.1



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

Reply via email to