diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2022-02-19 13:15:53 +0300 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-23 00:09:24 +0300 |
commit | 8ccf4dff09e49b34c6ed2e161720634e8dafb99f (patch) | |
tree | 71419d5619829aff695cf4ba78285d75e032f019 | |
parent | 06a98c966f9ae5d978b53986eca2a9cd99d2a6f3 (diff) | |
download | linux-8ccf4dff09e49b34c6ed2e161720634e8dafb99f.tar.xz |
bcachefs: opts.read_journal_only
Add an option that tells recovery to only read the journal, to be used
by the list_journal command.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
-rw-r--r-- | fs/bcachefs/opts.h | 5 | ||||
-rw-r--r-- | fs/bcachefs/recovery.c | 3 |
2 files changed, 8 insertions, 0 deletions
diff --git a/fs/bcachefs/opts.h b/fs/bcachefs/opts.h index 57c829b6eee1..b03cac016f0b 100644 --- a/fs/bcachefs/opts.h +++ b/fs/bcachefs/opts.h @@ -329,6 +329,11 @@ enum opt_type { OPT_BOOL(), \ NO_SB_OPT, false, \ NULL, "Read all journal entries, not just dirty ones")\ + x(read_journal_only, u8, \ + 0, \ + OPT_BOOL(), \ + NO_SB_OPT, false, \ + NULL, "Only read the journal, skip the rest of recovery")\ x(journal_transaction_names, u8, \ OPT_FS|OPT_FORMAT|OPT_MOUNT|OPT_RUNTIME, \ OPT_BOOL(), \ diff --git a/fs/bcachefs/recovery.c b/fs/bcachefs/recovery.c index 3fef06faf32f..7def5938e24d 100644 --- a/fs/bcachefs/recovery.c +++ b/fs/bcachefs/recovery.c @@ -1072,6 +1072,9 @@ use_clean: blacklist_seq = journal_seq = le64_to_cpu(clean->journal_seq) + 1; } + if (c->opts.read_journal_only) + goto out; + if (c->opts.reconstruct_alloc) { c->sb.compat &= ~(1ULL << BCH_COMPAT_alloc_info); drop_alloc_keys(&c->journal_keys); |