bcache: Debug code improvements
Couple changes:
* Consolidate bch_check_keys() and bch_check_key_order(), and move the
checks that only check_key_order() could do to bch_btree_iter_next().
* Get rid of CONFIG_BCACHE_EDEBUG - now, all that code is compiled in
when CONFIG_BCACHE_DEBUG is enabled, and there's now a sysfs file to
flip on the EDEBUG checks at runtime.
* Dropped an old not terribly useful check in rw_unlock(), and
refactored/improved a some of the other debug code.
Signed-off-by: Kent Overstreet <kmo@daterainc.com>
diff --git a/drivers/md/bcache/alloc.c b/drivers/md/bcache/alloc.c
index 4970ddc..ed5920b 100644
--- a/drivers/md/bcache/alloc.c
+++ b/drivers/md/bcache/alloc.c
@@ -398,8 +398,7 @@
out:
wake_up_process(ca->alloc_thread);
-#ifdef CONFIG_BCACHE_EDEBUG
- {
+ if (expensive_debug_checks(ca->set)) {
size_t iter;
long i;
@@ -413,7 +412,7 @@
fifo_for_each(i, &ca->unused, iter)
BUG_ON(i == r);
}
-#endif
+
b = ca->buckets + r;
BUG_ON(atomic_read(&b->pin) != 1);