Re: [patch] scsi: revert "[SCSI] Get rid of scsi_cmnd->done"

Christoph Hellwig
2008-01-02T20:18:16Z

On Wed, Jan 02, 2008 at 11:57:10AM -0800, Linus Torvalds wrote:
>
>
> On Wed, 2 Jan 2008, Matthew Wilcox wrote:
> >
> > sd_done and sr_done are called for REQ_TYPE_FS -- if the request comes
> > in through one of the SG interfaces, we call scsi_setup_blk_pc_cmnd()
> > which sets the ->done callback to scsi_blk_pc_done.
>
> Why do you think that REQ_TYPE_BLOCK_PC has anything to do with SG?
>
> It has *nothing* to do with SG, and anybody who uses SG in this day and
> age on a block device is just crazy.

I think you misunderstood Matthew here. REQ_TYPE_BLOCK_PC is indeed
used by any kind of SG_IO or similar passthrough no matter where it
originates. And exactly because REQ_TYPE_BLOCK_PC are entirely passthru
the actual driver (sd, sr or sg) is not doing the actual command
completion but it's handled in the scsi layer because it's exactly
the same no matter what driver it came on.