Re: [PATCH scsi-misc-2.6 03/05] scsi: make scsi_queue_insert() use blk_requeue_request()

James Bottomley
2005-04-20T23:24:24Z

On Wed, 2005-04-20 at 08:15 +0900, Tejun Heo wrote:
> - * Insert this command at the head of the queue for it's device.
> - * It will go before all other commands that are already in the queue.
> - *
> - * NOTE: there is magic here about the way the queue is plugged if
> - * we have no outstanding commands.
> - *
> - * Although this *doesn't* plug the queue, it does call the request
> - * function. The SCSI request function detects the blocked condition
> - * and plugs the queue appropriately.

This comment still looks appropriate to me ... why do you want to remove
it?

> + * Requeue the command.
> */
> - blk_insert_request(device->request_queue, cmd->request, 1, cmd, 1);
> + spin_lock_irqsave(q->queue_lock, flags);
> + blk_requeue_request(q, cmd->request);
> + spin_unlock_irqrestore(q->queue_lock, flags);
> +
> + scsi_run_queue(q);

Really, wouldn't it be much more efficient simply to call blk_run_queue
()? since the blocked flags were set above, that's pretty much what
scsi_run_queue() collapses to.

James