summaryrefslogtreecommitdiffstats
path: root/block/blk-settings.c
diff options
context:
space:
mode:
authorJens Axboe <jaxboe@fusionio.com>2011-04-12 10:17:31 +0200
committerJens Axboe <jaxboe@fusionio.com>2011-04-12 10:17:31 +0200
commitf75664570d8b75469cc468f23c2b27220984983b (patch)
tree48f1e9b8576892cab65361e39b874e0e07d3b32a /block/blk-settings.c
parent188112722cce083c8f1a7d0d84f55c2cd885920c (diff)
block: add callback function for unplug notification
MD would like to know when a queue is unplugged, so it can flush it's bitmap writes. Add such a callback. Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
Diffstat (limited to 'block/blk-settings.c')
-rw-r--r--block/blk-settings.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/block/blk-settings.c b/block/blk-settings.c
index 1fa76929359..eb949045bb1 100644
--- a/block/blk-settings.c
+++ b/block/blk-settings.c
@@ -790,6 +790,22 @@ void blk_queue_flush(struct request_queue *q, unsigned int flush)
}
EXPORT_SYMBOL_GPL(blk_queue_flush);
+/**
+ * blk_queue_unplugged - register a callback for an unplug event
+ * @q: the request queue for the device
+ * @fn: the function to call
+ *
+ * Some stacked drivers may need to know when IO is dispatched on an
+ * unplug event. By registrering a callback here, they will be notified
+ * when someone flushes their on-stack queue plug. The function will be
+ * called with the queue lock held.
+ */
+void blk_queue_unplugged(struct request_queue *q, unplugged_fn *fn)
+{
+ q->unplugged_fn = fn;
+}
+EXPORT_SYMBOL(blk_queue_unplugged);
+
static int __init blk_settings_init(void)
{
blk_max_low_pfn = max_low_pfn - 1;