}
 EXPORT_SYMBOL(closure_debug_destroy);
 
-static struct dentry *debug;
+static struct dentry *closure_debug;
 
 static int debug_seq_show(struct seq_file *f, void *data)
 {
        .release        = single_release
 };
 
-void __init closure_debug_init(void)
+int __init closure_debug_init(void)
 {
-       debug = debugfs_create_file("closures", 0400, NULL, NULL, &debug_ops);
+       closure_debug = debugfs_create_file("closures",
+                               0400, bcache_debug, NULL, &debug_ops);
+       return IS_ERR_OR_NULL(closure_debug);
 }
-
 #endif
 
 MODULE_AUTHOR("Kent Overstreet <koverstreet@google.com>");
 
 struct closure;
 struct closure_syncer;
 typedef void (closure_fn) (struct closure *);
+extern struct dentry *bcache_debug;
 
 struct closure_waitlist {
        struct llist_head       list;
 
 #ifdef CONFIG_BCACHE_CLOSURES_DEBUG
 
-void closure_debug_init(void);
+int closure_debug_init(void);
 void closure_debug_create(struct closure *cl);
 void closure_debug_destroy(struct closure *cl);
 
 #else
 
-static inline void closure_debug_init(void) {}
+static inline int closure_debug_init(void) { return 0; }
 static inline void closure_debug_create(struct closure *cl) {}
 static inline void closure_debug_destroy(struct closure *cl) {}
 
 
 #include <linux/random.h>
 #include <linux/seq_file.h>
 
-static struct dentry *debug;
+struct dentry *bcache_debug;
 
 #ifdef CONFIG_BCACHE_DEBUG
 
 
 void bch_debug_init_cache_set(struct cache_set *c)
 {
-       if (!IS_ERR_OR_NULL(debug)) {
+       if (!IS_ERR_OR_NULL(bcache_debug)) {
                char name[50];
                snprintf(name, 50, "bcache-%pU", c->sb.set_uuid);
 
-               c->debug = debugfs_create_file(name, 0400, debug, c,
+               c->debug = debugfs_create_file(name, 0400, bcache_debug, c,
                                               &cache_set_debug_ops);
        }
 }
 
 void bch_debug_exit(void)
 {
-       if (!IS_ERR_OR_NULL(debug))
-               debugfs_remove_recursive(debug);
+       if (!IS_ERR_OR_NULL(bcache_debug))
+               debugfs_remove_recursive(bcache_debug);
 }
 
 int __init bch_debug_init(struct kobject *kobj)
 {
-       debug = debugfs_create_dir("bcache", NULL);
+       bcache_debug = debugfs_create_dir("bcache", NULL);
 
-       return IS_ERR_OR_NULL(debug);
+       return IS_ERR_OR_NULL(bcache_debug);
 }
 
        mutex_init(&bch_register_lock);
        init_waitqueue_head(&unregister_wait);
        register_reboot_notifier(&reboot);
-       closure_debug_init();
 
        bcache_major = register_blkdev(0, "bcache");
        if (bcache_major < 0) {
        if (!(bcache_wq = alloc_workqueue("bcache", WQ_MEM_RECLAIM, 0)) ||
            !(bcache_kobj = kobject_create_and_add("bcache", fs_kobj)) ||
            bch_request_init() ||
-           bch_debug_init(bcache_kobj) ||
+           bch_debug_init(bcache_kobj) || closure_debug_init() ||
            sysfs_create_files(bcache_kobj, files))
                goto err;