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. 

The way you do generic SCSI commands (on perfectly normal block device 
nodes) is using the SCSI ioctl() interfaces.  That's how you are supposed 
to do things like burn DVD's or do any kind of special ops.

So REQ_TYPE_BLOCK_PC does quite commonly happen on perfectly regular block 
devices, it's how all commands that aren't pure reads or writes done by 
the kernel behave.

If you actually use /dev/sg*, you will be using the SG driver, and if you 
don't want that to have a ->done callback, then just set "done" to NULL 
for sg_driver.

                        Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to