diff options
-rw-r--r-- | fsck/defrag.c | 1 | ||||
-rw-r--r-- | fsck/fsck.h | 1 | ||||
-rw-r--r-- | fsck/mount.c | 8 |
3 files changed, 10 insertions, 0 deletions
diff --git a/fsck/defrag.c b/fsck/defrag.c index 7ca7260..7abc0bf 100644 --- a/fsck/defrag.c +++ b/fsck/defrag.c @@ -90,6 +90,7 @@ int f2fs_defragment(struct f2fs_sb_info *sbi, u64 from, u64 len, u64 to, int lef /* update curseg info; can update sit->types */ move_curseg_info(sbi, to); + zero_journal_entries(sbi); write_curseg_info(sbi); /* flush dirty sit entries */ diff --git a/fsck/fsck.h b/fsck/fsck.h index 1464146..3870948 100644 --- a/fsck/fsck.h +++ b/fsck/fsck.h @@ -135,6 +135,7 @@ extern int f2fs_do_mount(struct f2fs_sb_info *); extern void f2fs_do_umount(struct f2fs_sb_info *); extern void flush_journal_entries(struct f2fs_sb_info *); +extern void zero_journal_entries(struct f2fs_sb_info *); extern void flush_sit_entries(struct f2fs_sb_info *); extern void move_curseg_info(struct f2fs_sb_info *, u64); extern void write_curseg_info(struct f2fs_sb_info *); diff --git a/fsck/mount.c b/fsck/mount.c index 8418dcc..735ed90 100644 --- a/fsck/mount.c +++ b/fsck/mount.c @@ -1446,6 +1446,14 @@ void move_curseg_info(struct f2fs_sb_info *sbi, u64 from) } } +void zero_journal_entries(struct f2fs_sb_info *sbi) +{ + int i; + + for (i = 0; i < NO_CHECK_TYPE; i++) + CURSEG_I(sbi, i)->sum_blk->n_nats = 0; +} + void write_curseg_info(struct f2fs_sb_info *sbi) { struct f2fs_checkpoint *cp = F2FS_CKPT(sbi); |