aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/st.c
diff options
context:
space:
mode:
authorFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2008-12-05 01:25:27 -0500
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2008-12-29 12:24:30 -0500
commit52107b2c575d76bf210ff7e995128042594324ac (patch)
tree2a917a9a62f1e0ffa026d74a3aba4cb9b5ec8c16 /drivers/scsi/st.c
parent212cd8bfe12bb115e7bc9e119fe1411451829afb (diff)
[SCSI] st: convert check_tape to use st_scsi_kern_execute
This replaces st_do_scsi in check_tape (READ_BLOCK_LIMITS and MODE_SENSE) 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.c28
1 files changed, 18 insertions, 10 deletions
diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c
index 708e9e90678f..322ca87d252e 100644
--- a/drivers/scsi/st.c
+++ b/drivers/scsi/st.c
@@ -1020,17 +1020,24 @@ static int check_tape(struct scsi_tape *STp, struct file *filp)
1020 } 1020 }
1021 } 1021 }
1022 1022
1023 SRpnt = st_allocate_request(STp);
1024 if (!SRpnt) {
1025 retval = STp->buffer->syscall_result;
1026 goto err_out;
1027 }
1028
1023 if (STp->omit_blklims) 1029 if (STp->omit_blklims)
1024 STp->min_block = STp->max_block = (-1); 1030 STp->min_block = STp->max_block = (-1);
1025 else { 1031 else {
1026 memset((void *) &cmd[0], 0, MAX_COMMAND_SIZE); 1032 memset((void *) &cmd[0], 0, MAX_COMMAND_SIZE);
1027 cmd[0] = READ_BLOCK_LIMITS; 1033 cmd[0] = READ_BLOCK_LIMITS;
1028 1034
1029 SRpnt = st_do_scsi(SRpnt, STp, cmd, 6, DMA_FROM_DEVICE, 1035 retval = st_scsi_kern_execute(SRpnt, cmd, DMA_FROM_DEVICE,
1030 STp->device->request_queue->rq_timeout, 1036 STp->buffer->b_data, 6,
1031 MAX_READY_RETRIES, 1); 1037 STp->device->request_queue->rq_timeout,
1032 if (!SRpnt) { 1038 MAX_READY_RETRIES);
1033 retval = (STp->buffer)->syscall_result; 1039 if (retval) {
1040 st_release_request(SRpnt);
1034 goto err_out; 1041 goto err_out;
1035 } 1042 }
1036 1043
@@ -1054,11 +1061,12 @@ static int check_tape(struct scsi_tape *STp, struct file *filp)
1054 cmd[0] = MODE_SENSE; 1061 cmd[0] = MODE_SENSE;
1055 cmd[4] = 12; 1062 cmd[4] = 12;
1056 1063
1057 SRpnt = st_do_scsi(SRpnt, STp, cmd, 12, DMA_FROM_DEVICE, 1064 retval = st_scsi_kern_execute(SRpnt, cmd, DMA_FROM_DEVICE,
1058 STp->device->request_queue->rq_timeout, 1065 STp->buffer->b_data, 12,
1059 MAX_READY_RETRIES, 1); 1066 STp->device->request_queue->rq_timeout,
1060 if (!SRpnt) { 1067 MAX_READY_RETRIES);
1061 retval = (STp->buffer)->syscall_result; 1068 if (retval) {
1069 st_release_request(SRpnt);
1062 goto err_out; 1070 goto err_out;
1063 } 1071 }
1064 1072