From 8f79015dda74396ef5976d5cb262885aa88863b9 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Fri, 8 Oct 2010 20:21:08 +0200 Subject: [PATCH] Make completion wakeup dependent on active status This way we can avoid grabbing a per-dev lock completely on IO completion. Signed-off-by: Jens Axboe --- main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/main.c b/main.c index 7261999..0981b36 100644 --- a/main.c +++ b/main.c @@ -326,7 +326,9 @@ static void b_cmd_endio(struct bio *bio, int error) atomic_dec(&bd->in_flight); - wake_up(&bd->wq_done); + smp_mb(); + if (waitqueue_active(&bd->wq_done)) + wake_up(&bd->wq_done); } #if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 18) -- 2.25.1