f2fs: support discard submission error injection
This patch adds to support discard submission error injection for testing error handling of __submit_discard_cmd(). Signed-off-by: Chao Yu <yuchao0@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
35ec7d5748
commit
b83dcfe671
|
@ -56,6 +56,7 @@ enum {
|
||||||
FAULT_TRUNCATE,
|
FAULT_TRUNCATE,
|
||||||
FAULT_IO,
|
FAULT_IO,
|
||||||
FAULT_CHECKPOINT,
|
FAULT_CHECKPOINT,
|
||||||
|
FAULT_DISCARD,
|
||||||
FAULT_MAX,
|
FAULT_MAX,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1041,10 +1041,18 @@ static void __submit_discard_cmd(struct f2fs_sb_info *sbi,
|
||||||
|
|
||||||
dc->len += len;
|
dc->len += len;
|
||||||
|
|
||||||
|
#ifdef CONFIG_F2FS_FAULT_INJECTION
|
||||||
|
if (time_to_inject(sbi, FAULT_DISCARD)) {
|
||||||
|
f2fs_show_injection_info(FAULT_DISCARD);
|
||||||
|
err = -EIO;
|
||||||
|
goto submit;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
err = __blkdev_issue_discard(bdev,
|
err = __blkdev_issue_discard(bdev,
|
||||||
SECTOR_FROM_BLOCK(start),
|
SECTOR_FROM_BLOCK(start),
|
||||||
SECTOR_FROM_BLOCK(len),
|
SECTOR_FROM_BLOCK(len),
|
||||||
GFP_NOFS, 0, &bio);
|
GFP_NOFS, 0, &bio);
|
||||||
|
submit:
|
||||||
if (!err && bio) {
|
if (!err && bio) {
|
||||||
/*
|
/*
|
||||||
* should keep before submission to avoid D_DONE
|
* should keep before submission to avoid D_DONE
|
||||||
|
|
|
@ -55,6 +55,7 @@ char *f2fs_fault_name[FAULT_MAX] = {
|
||||||
[FAULT_TRUNCATE] = "truncate fail",
|
[FAULT_TRUNCATE] = "truncate fail",
|
||||||
[FAULT_IO] = "IO error",
|
[FAULT_IO] = "IO error",
|
||||||
[FAULT_CHECKPOINT] = "checkpoint error",
|
[FAULT_CHECKPOINT] = "checkpoint error",
|
||||||
|
[FAULT_DISCARD] = "discard error",
|
||||||
};
|
};
|
||||||
|
|
||||||
void f2fs_build_fault_attr(struct f2fs_sb_info *sbi, unsigned int rate)
|
void f2fs_build_fault_attr(struct f2fs_sb_info *sbi, unsigned int rate)
|
||||||
|
|
Loading…
Reference in New Issue