On Mon, 30 Jan 2006, Christoph Hellwig wrote: > This patch updates st to use scsi_execute instead of scsi_execute_async > for all scsi commands except the main I/O path. The advantage is that > these helpers do all the request tracking for these synchronous I/Os so > that there is no need for st_request structures. It also decouples > these helper scsi commands from the main tape buffer, allowing for an > easier switchover to the generic block request mapping routines for the > main I/O path later on. > I think the main tape buffer will stay for quite a long time. Using it has the advantage that it is allocated using GFP_DMA if necessary. This is not a problem if scsi_execute does bouncing somewhere if it needs to be done. Overall the conversion looks good. The problem with these conversions is to get all the small details correct as you note next :-) > Note that I don't have a scsi tape, so this is totally untested and > probably needs some tweaking before it's ready.. > It needs some tweaking. I started testing and it failed open with these messages in syslog: st 0:0:5:0: extraneous data discarded. st 0:0:5:0: COMMAND FAILED (87 0 1). st0: Error 70000 (sugg. bt 0x0, driver bt 0x0, host bt 0x7). st 0:0:5:0: extraneous data discarded. st 0:0:5:0: COMMAND FAILED (87 0 1). st0: Error 70000 (sugg. bt 0x0, driver bt 0x0, host bt 0x7). Next I tried to enable debugging but the driver did not compile. Now I am running out of time but I will continue later. -- Kai - : send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html