[SCSI] scsi_error: Refactoring scsi_error to facilitate in synchronous REQUEST_SENSE
authorBoaz Harrosh <bharrosh@panasas.com>
Mon, 8 Oct 2007 14:36:45 +0000 (16:36 +0200)
committerJames Bottomley <jejb@mulgrave.localdomain>
Fri, 12 Oct 2007 18:54:58 +0000 (14:54 -0400)
commite1c234685c50807e10a3e7873e6e006976a4d8e8
tree4be0f09620503f6669a40dacd49326443c9c07dc
parent55db6c1b8ed52bfc876e87971de8c67c42f36909
[SCSI] scsi_error: Refactoring scsi_error to facilitate in synchronous REQUEST_SENSE

 - Drivers/transports that want to send a synchronous REQUEST_SENSE command
   as part of their .queuecommand sequence, have 2 new API's that facilitate
   in doing so and abstract them from scsi-ml internals.

   void scsi_eh_prep_cmnd(struct scsi_cmnd *scmd,
struct scsi_eh_save *sesci, unsigned char *cmnd,
int cmnd_size, int sense_bytes)

   Will hijack a command and prepare it for request sense if needed.
   And will save any later needed info into a scsi_eh_save structure.

   void scsi_eh_restore_cmnd(struct scsi_cmnd* scmd,
struct scsi_eh_save *sesci);

   Will undo any changes done to a command by above function. Making
   it ready for completion.

 - Re-factor scsi_send_eh_cmnd() to use above APIs

Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
drivers/scsi/scsi_error.c
include/scsi/scsi_eh.h