From 9c13f9810c21eb78c181682a219b3a54628eefa6 Mon Sep 17 00:00:00 2001 From: Andreas Herrmann Date: Wed, 9 Aug 2006 17:31:16 +0200 Subject: [PATCH] --- yaml --- r: 34993 b: refs/heads/master c: 04846f25920d4b05d6040c531cc601049260db52 h: refs/heads/master i: 34991: e5c53a2e453ef0c40597ea5d4e8d124db29002a9 v: v3 --- [refs] | 2 +- trunk/drivers/scsi/scsi_lib.c | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 45617066d557..0040d5765f8e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 19ac0db3e22de3b00cc4aadc7efbad0420c7aa08 +refs/heads/master: 04846f25920d4b05d6040c531cc601049260db52 diff --git a/trunk/drivers/scsi/scsi_lib.c b/trunk/drivers/scsi/scsi_lib.c index 077c1c691210..d6743b959a72 100644 --- a/trunk/drivers/scsi/scsi_lib.c +++ b/trunk/drivers/scsi/scsi_lib.c @@ -551,7 +551,15 @@ static void scsi_run_queue(struct request_queue *q) list_del_init(&sdev->starved_entry); spin_unlock_irqrestore(shost->host_lock, flags); - blk_run_queue(sdev->request_queue); + + if (test_bit(QUEUE_FLAG_REENTER, &q->queue_flags) && + !test_and_set_bit(QUEUE_FLAG_REENTER, + &sdev->request_queue->queue_flags)) { + blk_run_queue(sdev->request_queue); + clear_bit(QUEUE_FLAG_REENTER, + &sdev->request_queue->queue_flags); + } else + blk_run_queue(sdev->request_queue); spin_lock_irqsave(shost->host_lock, flags); if (unlikely(!list_empty(&sdev->starved_entry)))