diff options
author | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2008-12-05 01:25:22 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-12-29 12:24:29 -0500 |
commit | 0944a721ba5c2535b615f06afd3aaa2f18c69cb9 (patch) | |
tree | d6a585e2c9fbd97f562b40801903bb35bfd86cc1 /drivers/scsi/st.c | |
parent | ffb4349499c00cd8ec90cb896599789cc00a7415 (diff) |
[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>
Diffstat (limited to 'drivers/scsi/st.c')
-rw-r--r-- | drivers/scsi/st.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c index 11341b717bba..c200496e90fe 100644 --- a/drivers/scsi/st.c +++ b/drivers/scsi/st.c | |||
@@ -874,21 +874,24 @@ static int test_ready(struct scsi_tape *STp, int do_wait) | |||
874 | int attentions, waits, max_wait, scode; | 874 | int attentions, waits, max_wait, scode; |
875 | int retval = CHKRES_READY, new_session = 0; | 875 | int retval = CHKRES_READY, new_session = 0; |
876 | unsigned char cmd[MAX_COMMAND_SIZE]; | 876 | unsigned char cmd[MAX_COMMAND_SIZE]; |
877 | struct st_request *SRpnt = NULL; | 877 | struct st_request *SRpnt; |
878 | struct st_cmdstatus *cmdstatp = &STp->buffer->cmdstat; | 878 | struct st_cmdstatus *cmdstatp = &STp->buffer->cmdstat; |
879 | 879 | ||
880 | SRpnt = st_allocate_request(STp); | ||
881 | if (!SRpnt) | ||
882 | return STp->buffer->syscall_result; | ||
883 | |||
880 | max_wait = do_wait ? ST_BLOCK_SECONDS : 0; | 884 | max_wait = do_wait ? ST_BLOCK_SECONDS : 0; |
881 | 885 | ||
882 | for (attentions=waits=0; ; ) { | 886 | for (attentions=waits=0; ; ) { |
883 | memset((void *) &cmd[0], 0, MAX_COMMAND_SIZE); | 887 | memset((void *) &cmd[0], 0, MAX_COMMAND_SIZE); |
884 | cmd[0] = TEST_UNIT_READY; | 888 | cmd[0] = TEST_UNIT_READY; |
885 | SRpnt = st_do_scsi(SRpnt, STp, cmd, 0, DMA_NONE, | ||
886 | STp->long_timeout, MAX_READY_RETRIES, 1); | ||
887 | 889 | ||
888 | if (!SRpnt) { | 890 | retval = st_scsi_kern_execute(SRpnt, cmd, DMA_NONE, NULL, 0, |
889 | retval = (STp->buffer)->syscall_result; | 891 | STp->long_timeout, |
892 | MAX_READY_RETRIES); | ||
893 | if (retval) | ||
890 | break; | 894 | break; |
891 | } | ||
892 | 895 | ||
893 | if (cmdstatp->have_sense) { | 896 | if (cmdstatp->have_sense) { |
894 | 897 | ||
@@ -932,8 +935,8 @@ static int test_ready(struct scsi_tape *STp, int do_wait) | |||
932 | break; | 935 | break; |
933 | } | 936 | } |
934 | 937 | ||
935 | if (SRpnt != NULL) | 938 | st_release_request(SRpnt); |
936 | st_release_request(SRpnt); | 939 | |
937 | return retval; | 940 | return retval; |
938 | } | 941 | } |
939 | 942 | ||