From: Kent Overstreet Date: Sun, 9 Oct 2022 08:26:06 +0000 (-0400) Subject: bcachefs: Don't stop copygc while removing devices X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=15949c549993a2383ebacf6c563b85722278fba3;p=linux.git 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 --- diff --git a/fs/bcachefs/super.c b/fs/bcachefs/super.c index c5efaa7d38a8b..2fb7e6300ea5e 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)