Loading Documentation/ABI/testing/sysfs-fs-f2fs +1 −0 Original line number Diff line number Diff line Loading @@ -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 Loading Documentation/filesystems/f2fs.rst +1 −0 Original line number Diff line number Diff line Loading @@ -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 Loading fs/f2fs/data.c +4 −0 Original line number Diff line number Diff line Loading @@ -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; Loading fs/f2fs/f2fs.h +1 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ enum { FAULT_ATOMIC_TIMEOUT, FAULT_VMALLOC, FAULT_LOCK_TIMEOUT, FAULT_SKIP_WRITE, FAULT_MAX, }; Loading fs/f2fs/super.c +1 −0 Original line number Diff line number Diff line Loading @@ -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, Loading Loading
Documentation/ABI/testing/sysfs-fs-f2fs +1 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
Documentation/filesystems/f2fs.rst +1 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
fs/f2fs/data.c +4 −0 Original line number Diff line number Diff line Loading @@ -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; Loading
fs/f2fs/f2fs.h +1 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ enum { FAULT_ATOMIC_TIMEOUT, FAULT_VMALLOC, FAULT_LOCK_TIMEOUT, FAULT_SKIP_WRITE, FAULT_MAX, }; Loading
fs/f2fs/super.c +1 −0 Original line number Diff line number Diff line Loading @@ -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, Loading