diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2022-02-28 18:48:33 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-22 17:09:26 -0400 |
commit | e0c014e7e4ccd4d865b637721e3e580505c29b07 (patch) | |
tree | 1a40b2757f2ce0c06aadb02fa1694c09c35cce25 /fs/bcachefs/journal_io.c | |
parent | 24a3d53b28398d2edd4dc717bede21eaf4a3b874 (diff) | |
download | lwn-e0c014e7e4ccd4d865b637721e3e580505c29b07.tar.gz lwn-e0c014e7e4ccd4d865b637721e3e580505c29b07.zip |
bcachefs: Finish writing journal after journal error
After emergency shutdown, all journal entries will be written as noflush
entries, meaning they will never be used - but they'll still exist for
debugging tools to examine.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Diffstat (limited to 'fs/bcachefs/journal_io.c')
-rw-r--r-- | fs/bcachefs/journal_io.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/fs/bcachefs/journal_io.c b/fs/bcachefs/journal_io.c index 90743fa13ff4..54587ff29771 100644 --- a/fs/bcachefs/journal_io.c +++ b/fs/bcachefs/journal_io.c @@ -1513,11 +1513,11 @@ void bch2_journal_write(struct closure *cl) j->write_start_time = local_clock(); spin_lock(&j->lock); - if (c->sb.features & (1ULL << BCH_FEATURE_journal_no_flush) && - (w->noflush || - (!w->must_flush && - (jiffies - j->last_flush_write) < msecs_to_jiffies(c->opts.journal_flush_delay) && - test_bit(JOURNAL_MAY_SKIP_FLUSH, &j->flags)))) { + if (bch2_journal_error(j) || + w->noflush || + (!w->must_flush && + (jiffies - j->last_flush_write) < msecs_to_jiffies(c->opts.journal_flush_delay) && + test_bit(JOURNAL_MAY_SKIP_FLUSH, &j->flags))) { w->noflush = true; SET_JSET_NO_FLUSH(jset, true); jset->last_seq = 0; |