From 15949c549993a2383ebacf6c563b85722278fba3 Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Sun, 9 Oct 2022 04:26:06 -0400 Subject: [PATCH] bcachefs: Don't stop copygc while removing devices With the new backpointer based copygc we don't need an explicit copygc reserve, we're always evacuating buckets one at a time - so this is no longer needed, and in fact removing it fixes a deadlock in bch2_dev_allocator_remove(). Signed-off-by: Kent Overstreet --- fs/bcachefs/super.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/fs/bcachefs/super.c b/fs/bcachefs/super.c index c5efaa7d38a8..2fb7e6300ea5 100644 --- a/fs/bcachefs/super.c +++ b/fs/bcachefs/super.c @@ -1345,19 +1345,11 @@ static bool bch2_fs_may_start(struct bch_fs *c) static void __bch2_dev_read_only(struct bch_fs *c, struct bch_dev *ca) { - /* - * Device going read only means the copygc reserve get smaller, so we - * don't want that happening while copygc is in progress: - */ - bch2_copygc_stop(c); - /* * The allocator thread itself allocates btree nodes, so stop it first: */ bch2_dev_allocator_remove(c, ca); bch2_dev_journal_stop(&c->journal, ca); - - bch2_copygc_start(c); } static void __bch2_dev_read_write(struct bch_fs *c, struct bch_dev *ca)