]> git.karo-electronics.de Git - linux-beck.git/blobdiff - fs/f2fs/segment.c
f2fs: improve write performance under frequent fsync calls
[linux-beck.git] / fs / f2fs / segment.c
index 9f8bdd02e3a899432501aeee962cc9fe79ea7b1f..5f84639354e3adaa17209aa4daebbc5ee785c009 100644 (file)
@@ -916,8 +916,7 @@ void write_meta_page(struct f2fs_sb_info *sbi, struct page *page)
 {
        struct f2fs_io_info fio = {
                .type = META,
-               .rw = WRITE_SYNC,
-               .rw_flag = REQ_META | REQ_PRIO
+               .rw = WRITE_SYNC | REQ_META | REQ_PRIO
        };
 
        set_page_writeback(page);
@@ -925,17 +924,12 @@ void write_meta_page(struct f2fs_sb_info *sbi, struct page *page)
 }
 
 void write_node_page(struct f2fs_sb_info *sbi, struct page *page,
+               struct f2fs_io_info *fio,
                unsigned int nid, block_t old_blkaddr, block_t *new_blkaddr)
 {
        struct f2fs_summary sum;
-       struct f2fs_io_info fio = {
-               .type = NODE,
-               .rw = WRITE_SYNC,
-               .rw_flag = 0
-       };
-
        set_summary(&sum, nid, 0, 0);
-       do_write_page(sbi, page, old_blkaddr, new_blkaddr, &sum, &fio);
+       do_write_page(sbi, page, old_blkaddr, new_blkaddr, &sum, fio);
 }
 
 void write_data_page(struct page *page, struct dnode_of_data *dn,
@@ -1018,7 +1012,6 @@ void rewrite_node_page(struct f2fs_sb_info *sbi,
        struct f2fs_io_info fio = {
                .type = NODE,
                .rw = WRITE_SYNC,
-               .rw_flag = 0
        };
 
        curseg = CURSEG_I(sbi, type);
@@ -1598,8 +1591,7 @@ static int ra_sit_pages(struct f2fs_sb_info *sbi, int start, int nrpages)
        int blkno = start;
        struct f2fs_io_info fio = {
                .type = META,
-               .rw = READ_SYNC,
-               .rw_flag = REQ_META | REQ_PRIO
+               .rw = READ_SYNC | REQ_META | REQ_PRIO
        };
 
        for (; blkno < start + nrpages && blkno < sit_blk_cnt; blkno++) {