This patch avoid to write a new cp if no journal info

Signed-off-by: Yunlei He <heyun...@huawei.com>
---
 fsck/mount.c | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/fsck/mount.c b/fsck/mount.c
index dd7a081..f2055e4 100644
--- a/fsck/mount.c
+++ b/fsck/mount.c
@@ -1447,7 +1447,7 @@ void rewrite_sit_area_bitmap(struct f2fs_sb_info *sbi)
        }
 }
 
-static void flush_sit_journal_entries(struct f2fs_sb_info *sbi)
+static int flush_sit_journal_entries(struct f2fs_sb_info *sbi)
 {
        struct curseg_info *curseg = CURSEG_I(sbi, CURSEG_COLD_DATA);
        struct f2fs_journal *journal = &curseg->sum_blk->journal;
@@ -1474,10 +1474,12 @@ static void flush_sit_journal_entries(struct 
f2fs_sb_info *sbi)
                rewrite_current_sit_page(sbi, segno, sit_blk);
                free(sit_blk);
        }
+
        journal->n_sits = 0;
+       return i;
 }
 
-static void flush_nat_journal_entries(struct f2fs_sb_info *sbi)
+static int flush_nat_journal_entries(struct f2fs_sb_info *sbi)
 {
        struct curseg_info *curseg = CURSEG_I(sbi, CURSEG_HOT_DATA);
        struct f2fs_journal *journal = &curseg->sum_blk->journal;
@@ -1491,7 +1493,7 @@ static void flush_nat_journal_entries(struct f2fs_sb_info 
*sbi)
 next:
        if (i >= nats_in_cursum(journal)) {
                journal->n_nats = 0;
-               return;
+               return i;
        }
 
        nid = le32_to_cpu(nid_in_journal(journal, i));
@@ -1515,9 +1517,11 @@ next:
 
 void flush_journal_entries(struct f2fs_sb_info *sbi)
 {
-       flush_nat_journal_entries(sbi);
-       flush_sit_journal_entries(sbi);
-       write_checkpoint(sbi);
+       int n_nats = flush_nat_journal_entries(sbi);
+       int n_sits = flush_sit_journal_entries(sbi);
+
+       if (n_nats || n_sits)
+               write_checkpoint(sbi);
 }
 
 void flush_sit_entries(struct f2fs_sb_info *sbi)
-- 
2.10.1


------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to