diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2021-06-21 16:30:52 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-22 17:08:54 -0400 |
commit | 9ae28f824e1bcc922c8f20d6b502ed0388026e3a (patch) | |
tree | 3250f71e031a3e23ecd7845d3f30e6dde39dd1a3 /fs | |
parent | 2ee47eec44f0613d6c51d88f8c820a5e8ed624a3 (diff) |
bcachefs: Start journal reclaim thread earlier
Especially in userspace, we sometime run into resource exhaustion issues
with starting up threads after mark and sweep/fsck.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/bcachefs/journal.c | 2 | ||||
-rw-r--r-- | fs/bcachefs/super.c | 8 |
2 files changed, 2 insertions, 8 deletions
diff --git a/fs/bcachefs/journal.c b/fs/bcachefs/journal.c index c2b1eef6265a..d5bbbf619359 100644 --- a/fs/bcachefs/journal.c +++ b/fs/bcachefs/journal.c @@ -1044,7 +1044,7 @@ int bch2_fs_journal_start(struct journal *j, u64 cur_seq, bch2_journal_space_available(j); spin_unlock(&j->lock); - return 0; + return bch2_journal_reclaim_start(j); } /* init/exit: */ diff --git a/fs/bcachefs/super.c b/fs/bcachefs/super.c index 0ff80816a54f..8de04bfae800 100644 --- a/fs/bcachefs/super.c +++ b/fs/bcachefs/super.c @@ -276,7 +276,7 @@ static void bch2_writes_disabled(struct percpu_ref *writes) void bch2_fs_read_only(struct bch_fs *c) { if (!test_bit(BCH_FS_RW, &c->flags)) { - BUG_ON(c->journal.reclaim_thread); + bch2_journal_reclaim_stop(&c->journal); return; } @@ -431,12 +431,6 @@ static int __bch2_fs_read_write(struct bch_fs *c, bool early) for_each_rw_member(ca, c, i) bch2_wake_allocator(ca); - ret = bch2_journal_reclaim_start(&c->journal); - if (ret) { - bch_err(c, "error starting journal reclaim: %i", ret); - return ret; - } - if (!early) { ret = bch2_fs_read_write_late(c); if (ret) |