gc lock must be held while invalidating buckets - fixes
"
1f7a95698e bcachefs: Invalidate buckets when writing to alloc btree"
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
if (ret)
goto stop;
+ down_read(&c->gc_lock);
+
ret = bch2_invalidate_buckets(c, ca);
- if (ret)
+ if (ret) {
+ up_read(&c->gc_lock);
goto stop;
+ }
- if (!fifo_empty(&ca->free_inc))
+ if (!fifo_empty(&ca->free_inc)) {
+ up_read(&c->gc_lock);
continue;
+ }
pr_debug("free_inc now empty");
- down_read(&c->gc_lock);
do {
if (test_bit(BCH_FS_GC_FAILURE, &c->flags)) {
up_read(&c->gc_lock);