From b66b2bc0f64a57c042ea1fa51dbd5904557bf67f Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Wed, 23 Feb 2022 06:56:35 -0500 Subject: [PATCH] bcachefs: Revert "Ensure journal doesn't get stuck in nochanges mode" This patch was originally to work around the journal geting stuck in nochanges mode - but that was just a hack, we needed to fix the actual bug. It should be fixed now, so revert it. Signed-off-by: Kent Overstreet --- fs/bcachefs/journal.h | 1 - fs/bcachefs/journal_io.c | 2 +- fs/bcachefs/journal_reclaim.c | 6 ++---- fs/bcachefs/journal_types.h | 1 - fs/bcachefs/super.c | 3 --- 5 files changed, 3 insertions(+), 10 deletions(-) diff --git a/fs/bcachefs/journal.h b/fs/bcachefs/journal.h index 9d4c6d86d5c1..5d263a5b8685 100644 --- a/fs/bcachefs/journal.h +++ b/fs/bcachefs/journal.h @@ -431,7 +431,6 @@ static inline int bch2_journal_preres_get_fast(struct journal *j, ret = 0; if ((flags & JOURNAL_RES_GET_RESERVED) || - test_bit(JOURNAL_NOCHANGES, &j->flags) || new.reserved + d < new.remaining) { new.reserved += d; ret = 1; diff --git a/fs/bcachefs/journal_io.c b/fs/bcachefs/journal_io.c index 43a60f5c23b3..b8fcc801a666 100644 --- a/fs/bcachefs/journal_io.c +++ b/fs/bcachefs/journal_io.c @@ -1616,7 +1616,7 @@ retry_alloc: w->devs_written = bch2_bkey_devs(bkey_i_to_s_c(&w->key)); - if (test_bit(JOURNAL_NOCHANGES, &j->flags)) + if (c->opts.nochanges) goto no_io; for_each_rw_member(ca, c, i) diff --git a/fs/bcachefs/journal_reclaim.c b/fs/bcachefs/journal_reclaim.c index 84cc952a7ac5..c15b18831512 100644 --- a/fs/bcachefs/journal_reclaim.c +++ b/fs/bcachefs/journal_reclaim.c @@ -34,10 +34,8 @@ unsigned bch2_journal_dev_buckets_available(struct journal *j, struct journal_device *ja, enum journal_space_from from) { - unsigned available = !test_bit(JOURNAL_NOCHANGES, &j->flags) - ? ((journal_space_from(ja, from) - - ja->cur_idx - 1 + ja->nr) % ja->nr) - : ja->nr; + unsigned available = (journal_space_from(ja, from) - + ja->cur_idx - 1 + ja->nr) % ja->nr; /* * Don't use the last bucket unless writing the new last_seq diff --git a/fs/bcachefs/journal_types.h b/fs/bcachefs/journal_types.h index 73e7fbc4f109..9facd3f128bb 100644 --- a/fs/bcachefs/journal_types.h +++ b/fs/bcachefs/journal_types.h @@ -151,7 +151,6 @@ enum { JOURNAL_NEED_WRITE, JOURNAL_MAY_GET_UNRESERVED, JOURNAL_MAY_SKIP_FLUSH, - JOURNAL_NOCHANGES, }; /* Embedded in struct bch_fs */ diff --git a/fs/bcachefs/super.c b/fs/bcachefs/super.c index 6a32b9a5dc0e..d9b69c4244d5 100644 --- a/fs/bcachefs/super.c +++ b/fs/bcachefs/super.c @@ -835,9 +835,6 @@ static struct bch_fs *bch2_fs_alloc(struct bch_sb *sb, struct bch_opts opts) if (ret) goto err; - if (c->opts.nochanges) - set_bit(JOURNAL_NOCHANGES, &c->journal.flags); - mi = bch2_sb_get_members(c->disk_sb.sb); for (i = 0; i < c->sb.nr_devices; i++) if (bch2_dev_exists(c->disk_sb.sb, mi, i) && -- 2.25.1