Could you please rebase on top of f2fs-tools? Thanks,
On 05/30, liujinbao1 wrote: > From: liujinbao1 <[email protected]> > > When CP has CP_COMPACT_SUM_FLAG set, the nat/sit journal is stored in > compact summary blocks at start_sum_block() rather than in the regular > summary area. However, rewrite_nat_in_journal() and > rewrite_sit_in_journal() only handled CP_UMOUNT_FLAG and the running > state, missing the compact summary case.This caused the fault injection > to fail. > > Fix this by adding the CP_COMPACT_SUM_FLAG check before the existing > CP_UMOUNT_FLAG check in both functions, writing the journal to the > correct compact summary block location. > > Test steps: > 1. NAT journal injection (nid=4, quota file): > inject.f2fs --nat 0 --mb block_addr --nid 4 --val 12345 > /dev/block/by-name/userdata > Before: blkaddr unchanged (308225) > After: blkaddr = 12345 > > 2. SIT journal injection (segno=61075, CURSEG_COLD_DATA): > inject.f2fs --sit 0 --blk 0x1e1da00 --mb vblocks --val 123 > /dev/block/by-name/userdata > Before: vblocks unchanged (0) > After: vblocks = 123 > > Signed-off-by: Sheng Yong <[email protected]> > Signed-off-by: liujinbao1 <[email protected]> > --- > fsck/inject.c | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/fsck/inject.c b/fsck/inject.c > index b00e356..60a2d20 100644 > --- a/fsck/inject.c > +++ b/fsck/inject.c > @@ -675,6 +675,14 @@ static void rewrite_nat_in_journal(struct f2fs_sb_info > *sbi, u32 nid, > } > } > > + if (is_set_ckpt_flags(cp, CP_COMPACT_SUM_FLAG)) { > + blkaddr = start_sum_block(sbi); > + ret = dev_write(&journal->n_nats, blkaddr << F2FS_BLKSIZE_BITS, > + SUM_JOURNAL_SIZE, WRITE_LIFE_NONE); > + ASSERT(ret >= 0); > + return; > + } > + > if (is_set_ckpt_flags(cp, CP_UMOUNT_FLAG)) > blkaddr = sum_blk_addr(sbi, NR_CURSEG_TYPE, CURSEG_HOT_DATA); > else > @@ -806,6 +814,14 @@ static void rewrite_sit_in_journal(struct f2fs_sb_info > *sbi, unsigned int segno, > } > } > > + if (is_set_ckpt_flags(cp, CP_COMPACT_SUM_FLAG)) { > + blkaddr = start_sum_block(sbi); > + ret = dev_write(&journal->n_sits, (blkaddr << > F2FS_BLKSIZE_BITS) + SUM_JOURNAL_SIZE, > + SUM_JOURNAL_SIZE, WRITE_LIFE_NONE); > + ASSERT(ret >= 0); > + return; > + } > + > if (is_set_ckpt_flags(cp, CP_UMOUNT_FLAG)) > blkaddr = sum_blk_addr(sbi, NR_CURSEG_TYPE, CURSEG_COLD_DATA); > else > -- > 2.43.0 > > > > _______________________________________________ > Linux-f2fs-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel _______________________________________________ Linux-f2fs-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
