Merge tag 'powerpc-4.16-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc...
[sfrench/cifs-2.6.git] / drivers / md / bcache / btree.c
index bf3a48aa9a9a47bda762975ee36f765b741ea043..fad9fe8817eb1a6c3e63e082dc600a72bb52284e 100644 (file)
@@ -1869,14 +1869,17 @@ void bch_initial_gc_finish(struct cache_set *c)
         */
        for_each_cache(ca, c, i) {
                for_each_bucket(b, ca) {
-                       if (fifo_full(&ca->free[RESERVE_PRIO]))
+                       if (fifo_full(&ca->free[RESERVE_PRIO]) &&
+                           fifo_full(&ca->free[RESERVE_BTREE]))
                                break;
 
                        if (bch_can_invalidate_bucket(ca, b) &&
                            !GC_MARK(b)) {
                                __bch_invalidate_one_bucket(ca, b);
-                               fifo_push(&ca->free[RESERVE_PRIO],
-                                         b - ca->buckets);
+                               if (!fifo_push(&ca->free[RESERVE_PRIO],
+                                  b - ca->buckets))
+                                       fifo_push(&ca->free[RESERVE_BTREE],
+                                                 b - ca->buckets);
                        }
                }
        }