]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - block/blk-core.c
block: optimize generic_unplug_device()
[linux-2.6-omap-h63xx.git] / block / blk-core.c
index b754a4a2f9bd26e2e3aaed11fb6fa3a9c3d67d0b..1b7dddf94f4f99769a715ffaaeb89e21d78ae72c 100644 (file)
@@ -253,9 +253,11 @@ EXPORT_SYMBOL(__generic_unplug_device);
  **/
 void generic_unplug_device(struct request_queue *q)
 {
-       spin_lock_irq(q->queue_lock);
-       __generic_unplug_device(q);
-       spin_unlock_irq(q->queue_lock);
+       if (blk_queue_plugged(q)) {
+               spin_lock_irq(q->queue_lock);
+               __generic_unplug_device(q);
+               spin_unlock_irq(q->queue_lock);
+       }
 }
 EXPORT_SYMBOL(generic_unplug_device);