aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/st.h
diff options
context:
space:
mode:
authorKai Makisara <Kai.Makisara@kolumbus.fi>2008-02-24 15:23:24 -0500
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2008-04-07 13:15:39 -0400
commit40f6b36c6243462fb95d0343237331c423494b03 (patch)
tree456b78c5647684527e0104463dd45b8e93ea9d81 /drivers/scsi/st.h
parentd35055a0f2637f29f95001a67b464fe833b09ebc (diff)
[SCSI] st: add option to use SILI in variable block reads
Add new option MT_ST_SILI to enable setting the SILI bit in reads in variable block mode. If SILI is set, reading a block shorter than the byte count does not result in CHECK CONDITION. The length of the block is determined using the residual count from the HBA. Avoiding the REQUEST SENSE command for every block speeds up some real applications considerably. Signed-off-by: Kai Makisara <kai.makisara@kolumbus.fi> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/st.h')
-rw-r--r--drivers/scsi/st.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/scsi/st.h b/drivers/scsi/st.h
index 5931726fcf93..b92712f95931 100644
--- a/drivers/scsi/st.h
+++ b/drivers/scsi/st.h
@@ -12,6 +12,7 @@ struct st_cmdstatus {
12 int midlevel_result; 12 int midlevel_result;
13 struct scsi_sense_hdr sense_hdr; 13 struct scsi_sense_hdr sense_hdr;
14 int have_sense; 14 int have_sense;
15 int residual;
15 u64 uremainder64; 16 u64 uremainder64;
16 u8 flags; 17 u8 flags;
17 u8 remainder_valid; 18 u8 remainder_valid;
@@ -34,6 +35,7 @@ struct st_request {
34struct st_buffer { 35struct st_buffer {
35 unsigned char dma; /* DMA-able buffer */ 36 unsigned char dma; /* DMA-able buffer */
36 unsigned char do_dio; /* direct i/o set up? */ 37 unsigned char do_dio; /* direct i/o set up? */
38 unsigned char cleared; /* internal buffer cleared after open? */
37 int buffer_size; 39 int buffer_size;
38 int buffer_blocks; 40 int buffer_blocks;
39 int buffer_bytes; 41 int buffer_bytes;
@@ -122,6 +124,7 @@ struct scsi_tape {
122 unsigned char try_dio_now; /* try direct i/o before next close? */ 124 unsigned char try_dio_now; /* try direct i/o before next close? */
123 unsigned char c_algo; /* compression algorithm */ 125 unsigned char c_algo; /* compression algorithm */
124 unsigned char pos_unknown; /* after reset position unknown */ 126 unsigned char pos_unknown; /* after reset position unknown */
127 unsigned char sili; /* use SILI when reading in variable b mode */
125 int tape_type; 128 int tape_type;
126 int long_timeout; /* timeout for commands known to take long time */ 129 int long_timeout; /* timeout for commands known to take long time */
127 130