[SCSI] st: convert test_ready to use st_scsi_kern_execute

This replaces st_do_scsi in test_ready (TEST_UNIT_READY) with
st_scsi_kern_execute.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Acked-by: Kai Makisara <Kai.Makisara@kolumbus.fi>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
FUJITA Tomonori 2008-12-05 15:25:22 +09:00 committed by James Bottomley
parent ffb4349499
commit 0944a721ba
1 changed files with 11 additions and 8 deletions

View File

@ -874,21 +874,24 @@ static int test_ready(struct scsi_tape *STp, int do_wait)
int attentions, waits, max_wait, scode; int attentions, waits, max_wait, scode;
int retval = CHKRES_READY, new_session = 0; int retval = CHKRES_READY, new_session = 0;
unsigned char cmd[MAX_COMMAND_SIZE]; unsigned char cmd[MAX_COMMAND_SIZE];
struct st_request *SRpnt = NULL; struct st_request *SRpnt;
struct st_cmdstatus *cmdstatp = &STp->buffer->cmdstat; struct st_cmdstatus *cmdstatp = &STp->buffer->cmdstat;
SRpnt = st_allocate_request(STp);
if (!SRpnt)
return STp->buffer->syscall_result;
max_wait = do_wait ? ST_BLOCK_SECONDS : 0; max_wait = do_wait ? ST_BLOCK_SECONDS : 0;
for (attentions=waits=0; ; ) { for (attentions=waits=0; ; ) {
memset((void *) &cmd[0], 0, MAX_COMMAND_SIZE); memset((void *) &cmd[0], 0, MAX_COMMAND_SIZE);
cmd[0] = TEST_UNIT_READY; cmd[0] = TEST_UNIT_READY;
SRpnt = st_do_scsi(SRpnt, STp, cmd, 0, DMA_NONE,
STp->long_timeout, MAX_READY_RETRIES, 1);
if (!SRpnt) { retval = st_scsi_kern_execute(SRpnt, cmd, DMA_NONE, NULL, 0,
retval = (STp->buffer)->syscall_result; STp->long_timeout,
MAX_READY_RETRIES);
if (retval)
break; break;
}
if (cmdstatp->have_sense) { if (cmdstatp->have_sense) {
@ -932,8 +935,8 @@ static int test_ready(struct scsi_tape *STp, int do_wait)
break; break;
} }
if (SRpnt != NULL)
st_release_request(SRpnt); st_release_request(SRpnt);
return retval; return retval;
} }