summaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorJens Axboe <jaxboe@fusionio.com>2011-04-12 10:11:24 +0200
committerJens Axboe <jaxboe@fusionio.com>2011-04-12 10:12:29 +0200
commit188112722cce083c8f1a7d0d84f55c2cd885920c (patch)
treeeb285b823d2dd5a7fa88e9d6a1ee77299c14ff88 /block
parentblock: fixup block IO unplug trace call (diff)
downloadlinux-188112722cce083c8f1a7d0d84f55c2cd885920c.tar.xz
linux-188112722cce083c8f1a7d0d84f55c2cd885920c.zip
block: add comment on why we save and disable interrupts in flush_plug_list()
It's done at the top to avoid doing it for every queue we unplug. Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
Diffstat (limited to 'block')
-rw-r--r--block/blk-core.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/block/blk-core.c b/block/blk-core.c
index d20ce1e849c8..0c0ea10e61ea 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -2696,6 +2696,11 @@ static void flush_plug_list(struct blk_plug *plug)
q = NULL;
depth = 0;
+
+ /*
+ * Save and disable interrupts here, to avoid doing it for every
+ * queue lock we have to take.
+ */
local_irq_save(flags);
while (!list_empty(&list)) {
rq = list_entry_rq(list.next);