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 <kent.overstreet@linux.dev>
This commit is contained in:
parent
c9828cea31
commit
15949c5499
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user