]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
f2fs: support discard submission error injection
authorChao Yu <yuchao0@huawei.com>
Mon, 6 Aug 2018 12:30:18 +0000 (20:30 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Mon, 13 Aug 2018 17:48:17 +0000 (10:48 -0700)
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>
fs/f2fs/f2fs.h
fs/f2fs/segment.c
fs/f2fs/super.c

index 9fb780317b4e318fd7e9e6df0d3e4ab3156f8d83..95244e75dfc4538d90c1c160fe0095a62453da40 100644 (file)
@@ -56,6 +56,7 @@ enum {
        FAULT_TRUNCATE,
        FAULT_IO,
        FAULT_CHECKPOINT,
+       FAULT_DISCARD,
        FAULT_MAX,
 };
 
index 540d7d6161ba8015797713544ae77387becc8aba..f24e659463e9409b6ab49e7f42a43ef28689e9c2 100644 (file)
@@ -1041,10 +1041,18 @@ static void __submit_discard_cmd(struct f2fs_sb_info *sbi,
 
                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,
                                        SECTOR_FROM_BLOCK(start),
                                        SECTOR_FROM_BLOCK(len),
                                        GFP_NOFS, 0, &bio);
+submit:
                if (!err && bio) {
                        /*
                         * should keep before submission to avoid D_DONE
index bd57be470e23b75dd8a3ba7c0a99c7d1b024c31c..30bd9138f39df062fea24ab0073e0dfd5ebedb0d 100644 (file)
@@ -55,6 +55,7 @@ char *f2fs_fault_name[FAULT_MAX] = {
        [FAULT_TRUNCATE]        = "truncate fail",
        [FAULT_IO]              = "IO error",
        [FAULT_CHECKPOINT]      = "checkpoint error",
+       [FAULT_DISCARD]         = "discard error",
 };
 
 void f2fs_build_fault_attr(struct f2fs_sb_info *sbi, unsigned int rate)