Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2ae4c673 authored by Jaegeuk Kim's avatar Jaegeuk Kim
Browse files

f2fs: retain inconsistency information to initiate fsck.f2fs



This patch adds sbi->need_fsck to conduct fsck.f2fs later.
This flag can only be removed by fsck.f2fs.

Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
parent 4081363f
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -882,6 +882,9 @@ static void do_checkpoint(struct f2fs_sb_info *sbi, bool is_umount)
	else
		clear_ckpt_flags(ckpt, CP_ORPHAN_PRESENT_FLAG);

	if (sbi->need_fsck)
		set_ckpt_flags(ckpt, CP_FSCK_FLAG);

	/* update SIT/NAT bitmap */
	get_sit_bitmap(sbi, __bitmap_ptr(sbi, SIT_BITMAP));
	get_nat_bitmap(sbi, __bitmap_ptr(sbi, NAT_BITMAP));
+1 −0
Original line number Diff line number Diff line
@@ -434,6 +434,7 @@ struct f2fs_sb_info {
	struct buffer_head *raw_super_buf;	/* buffer head of raw sb */
	struct f2fs_super_block *raw_super;	/* raw super block pointer */
	int s_dirty;				/* dirty flag for checkpoint */
	bool need_fsck;				/* need fsck.f2fs to fix */

	/* for node-related operations */
	struct f2fs_nm_info *nm_info;		/* node manager */
+1 −0
Original line number Diff line number Diff line
@@ -849,6 +849,7 @@ static void init_sb_info(struct f2fs_sb_info *sbi)
		atomic_set(&sbi->nr_pages[i], 0);

	sbi->dir_level = DEF_DIR_LEVEL;
	sbi->need_fsck = false;
}

/*
+1 −0
Original line number Diff line number Diff line
@@ -85,6 +85,7 @@ struct f2fs_super_block {
/*
 * For checkpoint
 */
#define CP_FSCK_FLAG		0x00000010
#define CP_ERROR_FLAG		0x00000008
#define CP_COMPACT_SUM_FLAG	0x00000004
#define CP_ORPHAN_PRESENT_FLAG	0x00000002