Commit 11207646 authored by Chao Yu's avatar Chao Yu Committed by Jaegeuk Kim
Browse files

f2fs: introduce FAULT_SKIP_WRITE



In order to simulate skipped write during enable_checkpoint().

Signed-off-by: default avatarChao Yu <chao@kernel.org>
Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
parent ab59919c
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -744,6 +744,7 @@ Description: Support configuring fault injection type, should be
		FAULT_ATOMIC_TIMEOUT             0x00400000 (1000ms)
		FAULT_VMALLOC                    0x00800000
		FAULT_LOCK_TIMEOUT               0x01000000 (1000ms)
		FAULT_SKIP_WRITE                 0x02000000
		===========================      ==========

What:		/sys/fs/f2fs/<disk>/discard_io_aware_gran
+1 −0
Original line number Diff line number Diff line
@@ -218,6 +218,7 @@ fault_type=%d Support configuring fault injection type, should be
			     FAULT_ATOMIC_TIMEOUT             0x00400000 (1000ms)
			     FAULT_VMALLOC                    0x00800000
			     FAULT_LOCK_TIMEOUT               0x01000000 (1000ms)
			     FAULT_SKIP_WRITE                 0x02000000
			     ===========================      ==========
mode=%s			 Control block allocation mode which supports "adaptive"
			 and "lfs". In "lfs" mode, there should be no random
+4 −0
Original line number Diff line number Diff line
@@ -2921,6 +2921,10 @@ int f2fs_do_write_data_page(struct f2fs_io_info *fio)
		goto got_it;
	}

	if (is_sbi_flag_set(fio->sbi, SBI_ENABLE_CHECKPOINT) &&
		time_to_inject(fio->sbi, FAULT_SKIP_WRITE))
		return -EINVAL;

	/* Deadlock due to between page->lock and f2fs_lock_op */
	if (fio->need_lock == LOCK_REQ && !f2fs_trylock_op(fio->sbi, &lc))
		return -EAGAIN;
+1 −0
Original line number Diff line number Diff line
@@ -66,6 +66,7 @@ enum {
	FAULT_ATOMIC_TIMEOUT,
	FAULT_VMALLOC,
	FAULT_LOCK_TIMEOUT,
	FAULT_SKIP_WRITE,
	FAULT_MAX,
};

+1 −0
Original line number Diff line number Diff line
@@ -70,6 +70,7 @@ const char *f2fs_fault_name[FAULT_MAX] = {
	[FAULT_ATOMIC_TIMEOUT]		= "atomic timeout",
	[FAULT_VMALLOC]			= "vmalloc",
	[FAULT_LOCK_TIMEOUT]		= "lock timeout",
	[FAULT_SKIP_WRITE]		= "skip write",
};

int f2fs_build_fault_attr(struct f2fs_sb_info *sbi, unsigned long rate,