]> Pileus Git - ~andy/linux/blobdiff - drivers/scsi/scsi_lib.c
sysfs_remove_bin_file: no return value, dump_stack on error
[~andy/linux] / drivers / scsi / scsi_lib.c
index 077c1c691210284428d416fb73392c89f1cdc92b..d6743b959a72b151f1d6ade6d70b6d3b70c44d92 100644 (file)
@@ -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)))