[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>
This commit is contained in:

committed by
James Bottomley

parent
d35055a0f2
commit
40f6b36c62
@@ -12,6 +12,7 @@ struct st_cmdstatus {
|
||||
int midlevel_result;
|
||||
struct scsi_sense_hdr sense_hdr;
|
||||
int have_sense;
|
||||
int residual;
|
||||
u64 uremainder64;
|
||||
u8 flags;
|
||||
u8 remainder_valid;
|
||||
@@ -34,6 +35,7 @@ struct st_request {
|
||||
struct st_buffer {
|
||||
unsigned char dma; /* DMA-able buffer */
|
||||
unsigned char do_dio; /* direct i/o set up? */
|
||||
unsigned char cleared; /* internal buffer cleared after open? */
|
||||
int buffer_size;
|
||||
int buffer_blocks;
|
||||
int buffer_bytes;
|
||||
@@ -122,6 +124,7 @@ struct scsi_tape {
|
||||
unsigned char try_dio_now; /* try direct i/o before next close? */
|
||||
unsigned char c_algo; /* compression algorithm */
|
||||
unsigned char pos_unknown; /* after reset position unknown */
|
||||
unsigned char sili; /* use SILI when reading in variable b mode */
|
||||
int tape_type;
|
||||
int long_timeout; /* timeout for commands known to take long time */
|
||||
|
||||
|
Reference in New Issue
Block a user