Allow building as a module with CONFIG_BCACHE_CLOSURE_DEBUG.
Previously bcache.o required access to closure_lock. Instead
of exposing this symbol move the affected function.
---
 block/bcache_util.c |   11 +++++++++++
 block/bcache_util.h |   17 +----------------
 2 files changed, 12 insertions(+), 16 deletions(-)

diff --git a/block/bcache_util.c b/block/bcache_util.c
index 8e147de..19846fb 100644
--- a/block/bcache_util.c
+++ b/block/bcache_util.c
@@ -476,6 +476,17 @@ void closure_sync(struct closure *c)
 }
 EXPORT_SYMBOL_GPL(closure_sync);
 
+void closure_del(struct closure *c)
+{
+#ifdef CONFIG_BCACHE_CLOSURE_DEBUG
+       unsigned long flags;
+       spin_lock_irqsave(&closure_lock, flags);
+       list_del(&c->all);
+       spin_unlock_irqrestore(&closure_lock, flags);
+#endif
+}
+EXPORT_SYMBOL_GPL(closure_del);
+
 #ifdef CONFIG_BCACHE_CLOSURE_DEBUG
 
 #ifdef CONFIG_DEBUG_FS
diff --git a/block/bcache_util.h b/block/bcache_util.h
index d208131..872ca56 100644
--- a/block/bcache_util.h
+++ b/block/bcache_util.h
@@ -474,22 +474,7 @@ void closure_run_wait(closure_list_t *list, struct 
workqueue_struct *wq);
 bool closure_wait(closure_list_t *list, struct closure *c);
 void closure_sync(struct closure *c);
 void __closure_sleep(struct closure *c);
-
-#ifdef CONFIG_BCACHE_CLOSURE_DEBUG
-extern struct list_head closures;
-extern spinlock_t closure_lock;
-
-static inline void closure_del(struct closure *c)
-{
-       unsigned long flags;
-       spin_lock_irqsave(&closure_lock, flags);
-       list_del(&c->all);
-       spin_unlock_irqrestore(&closure_lock, flags);
-}
-
-#else
-static inline void closure_del(struct closure *c) {}
-#endif
+void closure_del(struct closure *c);
 
 static inline void closure_init(struct closure *c, struct closure *parent)
 {
-- 
1.7.4.4

--
To unsubscribe from this list: send the line "unsubscribe linux-bcache" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to