summaryrefslogtreecommitdiffstats
path: root/fs/bcachefs
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2022-02-23 06:56:35 -0500
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-22 17:09:25 -0400
commitb66b2bc0f64a57c042ea1fa51dbd5904557bf67f (patch)
tree104a7d90c38fc3fb4b634b6f18188698ebd4e228 /fs/bcachefs
parente201f70b116513cb0d17ba32e1f00c234dee9d7e (diff)
downloadlinux-b66b2bc0f64a57c042ea1fa51dbd5904557bf67f.tar.gz
linux-b66b2bc0f64a57c042ea1fa51dbd5904557bf67f.tar.bz2
linux-b66b2bc0f64a57c042ea1fa51dbd5904557bf67f.zip
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 <kent.overstreet@gmail.com>
Diffstat (limited to 'fs/bcachefs')
-rw-r--r--fs/bcachefs/journal.h1
-rw-r--r--fs/bcachefs/journal_io.c2
-rw-r--r--fs/bcachefs/journal_reclaim.c6
-rw-r--r--fs/bcachefs/journal_types.h1
-rw-r--r--fs/bcachefs/super.c3
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) &&