Re: [PATCH scsi-misc-2.6 08/08] scsi: fix hot unplug sequence

James Bottomley
2005-03-25T19:19:57Z

On Fri, 2005-03-25 at 14:38 +0900, Tejun Heo wrote:
> We have users of scsi_do_req() other than scsi_wait_req() and they
> use different done() functions to do different things. I've checked
> other done functions and none uses contents inside the passed
> scsi_cmnd, so using a dummy command should be okay with them. Am I
> missing something here?

Well ... the other users are supposed to be going away. They're
actually all coded wrongly in some way or other ... perhaps I should
speed up the process.

> Oh, and I would really appreciate if you can fill me in / give a
> pointer about the scsi_request/scsi_cmnd distinction.

The block layer speaks in terms of requests and the scsi layers in terms
of commands. The scsi_request_fn() actually associates a request with a
command. However, since SCSI uses the block layer for queueing, all the
internal scsi command submit paths have to use requests. This is what a
scsi_request is. The reason for the special casing is that we can't use
the normal REQ_CMD or REQ_BLOCK_PC paths because they need ULD
initialisation and back end processing.

James