Understanding the Execution of SAM Initiator I/O Requests
During normal processing, many transactions are queued in the device driver.
As the device driver processes these transactions and passes them to the adapter device driver, the device driver moves them to the in-process queue. When the adapter device driver returns through the iodone service with one of these transactions, the device driver either recovers any errors on the transaction or returns using the iodone kernel service to the calling level.
The device driver can send only one scsi_buf structure per call to the adapter device driver. Thus, the scsi_buf.bufstruct.av_forw pointer should be null when given to the adapter device driver, which indicates that this is the only request. The device driver can queue multiple scsi_buf requests by making multiple calls to the adapter device driver strategy routine.