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);