linux/include/scsi
Boaz Harrosh 6f9a35e2da [SCSI] bidirectional command support
At the block level bidi request uses req->next_rq pointer for a second
bidi_read request.
At Scsi-midlayer a second scsi_data_buffer structure is used for the
bidi_read part. This bidi scsi_data_buffer is put on
request->next_rq->special. Struct scsi_cmnd is not changed.

- Define scsi_bidi_cmnd() to return true if it is a bidi request and a
  second sgtable was allocated.

- Define scsi_in()/scsi_out() to return the in or out scsi_data_buffer
  from this command This API is to isolate users from the mechanics of
  bidi.

- Define scsi_end_bidi_request() to do what scsi_end_request() does but
  for a bidi request. This is necessary because bidi commands are a bit
  tricky here. (See comments in body)

- scsi_release_buffers() will also release the bidi_read scsi_data_buffer

- scsi_io_completion() on bidi commands will now call
  scsi_end_bidi_request() and return.

- The previous work done in scsi_init_io() is now done in a new
  scsi_init_sgtable() (which is 99% identical to old scsi_init_io())
  The new scsi_init_io() will call the above twice if needed also for
  the bidi_read command. Only at this point is a command bidi.

- In scsi_error.c at scsi_eh_prep/restore_cmnd() make sure bidi-lld is not
  confused by a get-sense command that looks like bidi. This is done
  by puting NULL at request->next_rq, and restoring.

[jejb: update to sg_table and resolve conflicts
also update to blk-end-request and resolve conflicts]

Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2008-01-30 13:03:41 -06:00
..
iscsi_if.h [SCSI] libiscsi: fix nop handling 2008-01-11 18:28:35 -06:00
iscsi_proto.h [SCSI] libiscsi: fix shutdown 2008-01-11 18:28:33 -06:00
libiscsi.h [SCSI] libiscsi: fix nop handling 2008-01-11 18:28:35 -06:00
libsas.h [SCSI] libsas: abstract STP task status into a function 2008-01-25 11:47:23 -06:00
libsrp.h [SCSI] tgt: convert libsrp and ibmvstgt to use srp_transport 2007-10-12 14:37:57 -04:00
sas_ata.h [SCSI] libsas: make ATA functions selectable by a config option 2007-07-22 13:23:13 -05:00
sas.h [SCSI] libsas: Convert sas_proto users to sas_protocol 2008-01-11 18:22:41 -06:00
scsi_cmnd.h [SCSI] bidirectional command support 2008-01-30 13:03:41 -06:00
scsi_dbg.h [SCSI] Fix device not ready printk 2007-10-12 14:51:56 -04:00
scsi_device.h [SCSI] scsi.h: add macro for enclosure bit of inquiry data 2008-01-23 11:29:35 -06:00
scsi_devinfo.h Merge ../scsi-rc-fixes-2.6 2006-04-14 15:47:45 -05:00
scsi_driver.h Revert "scsi: revert "[SCSI] Get rid of scsi_cmnd->done"" 2008-01-06 10:17:12 -08:00
scsi_eh.h [SCSI] bidirectional command support 2008-01-30 13:03:41 -06:00
scsi_host.h [SCSI] implement scsi_data_buffer 2008-01-30 13:03:40 -06:00
scsi_ioctl.h [SCSI] unify SCSI_IOCTL_SEND_COMMAND implementations 2006-04-13 10:13:15 -05:00
scsi_netlink_fc.h [SCSI] SCSI & FC transport: extend event vendor id's to 64bits 2006-09-02 15:35:15 -05:00
scsi_netlink.h [SCSI] SCSI & FC transport: extend event vendor id's to 64bits 2006-09-02 15:35:15 -05:00
scsi_tcq.h [PATCH] helper function for retrieving scsi_cmd given host based block layer tag 2006-10-04 19:32:09 +02:00
scsi_tgt_if.h [SCSI] tgt: add I_T nexus support 2007-10-12 14:37:50 -04:00
scsi_tgt.h [SCSI] tgt: add I_T nexus support 2007-10-12 14:37:50 -04:00
scsi_transport_fc.h [SCSI] fc_transport: add target driver support 2007-10-12 14:46:58 -04:00
scsi_transport_iscsi.h [SCSI] iscsi: convert xmit path to iscsi chunks 2008-01-11 18:28:42 -06:00
scsi_transport_sas.h [SCSI] libsas: add host SMP processing 2008-01-11 18:29:11 -06:00
scsi_transport_spi.h [SCSI] spi transport class: export spi_dv_pending 2007-02-02 20:44:25 -06:00
scsi_transport_srp.h [SCSI] tgt: move tsk_mgmt_response callback to transport class 2007-10-12 14:38:01 -04:00
scsi_transport.h [SCSI] tgt: move tsk_mgmt_response callback to transport class 2007-10-12 14:38:01 -04:00
scsi.h SCSI: support for allocating large scatterlists 2007-10-16 11:12:53 +02:00
scsicam.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sd.h [SCSI] sr,sd: send media state change modification events 2008-01-11 18:22:30 -06:00
sg.h [SCSI] sg: fixes for large page_size 2006-09-26 09:23:15 -07:00
srp.h [SCSI] srp.h: Add I/O Class values 2006-06-17 20:37:38 -07:00