From: Qu Wenruo Date: Tue, 22 Oct 2019 07:58:05 +0000 (+0800) Subject: src/log-writes: Add new discard check point X-Git-Tag: v2022.05.01~989 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=9b56b948e90afcce54c7e1631c14d420cf795825;p=xfstests-dev.git src/log-writes: Add new discard check point Despite the existing |fua|flush checkpoint, add a new discard check point to make sure discard is not screwing up things. Signed-off-by: Qu Wenruo Reviewed-by: Eryu Guan Signed-off-by: Eryu Guan --- diff --git a/src/log-writes/replay-log.c b/src/log-writes/replay-log.c index 829b18e2..968c82ab 100644 --- a/src/log-writes/replay-log.c +++ b/src/log-writes/replay-log.c @@ -64,8 +64,8 @@ static void usage(void) fprintf(stderr, "\t--no-discard - don't process discard entries\n"); fprintf(stderr, "\t--fsck - the fsck command to run, must specify " "--check\n"); - fprintf(stderr, "\t--check [|flush|fua] when to check the " - "file system, mush specify --fsck\n"); + fprintf(stderr, "\t--check [|flush|fua|discard] when to check " + "the file system, mush specify --fsck\n"); fprintf(stderr, "\t--start-sector - replay ops on region " "from onto \n"); fprintf(stderr, "\t--end-sector - replay ops on region " @@ -115,6 +115,7 @@ enum log_replay_check_mode { CHECK_NUMBER = 1, CHECK_FUA = 2, CHECK_FLUSH = 3, + CHECK_DISCARD = 4, }; static int seek_to_mark(struct log *log, struct log_write_entry *entry, @@ -253,6 +254,8 @@ int main(int argc, char **argv) check_mode = CHECK_FLUSH; } else if (!strcmp(optarg, "fua")) { check_mode = CHECK_FUA; + } else if (!strcmp(optarg, "discard")) { + check_mode = CHECK_DISCARD; } else { check_mode = CHECK_NUMBER; check_number = strtoull(optarg, &tmp, 0); @@ -369,6 +372,9 @@ int main(int argc, char **argv) else if ((check_mode == CHECK_FLUSH) && should_stop(entry, LOG_FLUSH_FLAG, NULL)) ret = run_fsck(log, fsck_command); + else if ((check_mode == CHECK_DISCARD) && + should_stop(entry, LOG_DISCARD_FLAG, NULL)) + ret = run_fsck(log, fsck_command); else ret = 0; if (ret) {