[SCSI] st: convert check_tape to use st_scsi_kern_execute
authorFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Fri, 5 Dec 2008 06:25:27 +0000 (15:25 +0900)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>
Mon, 29 Dec 2008 17:24:30 +0000 (11:24 -0600)
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>
drivers/scsi/st.c

index 708e9e9..322ca87 100644 (file)
@@ -1020,17 +1020,24 @@ static int check_tape(struct scsi_tape *STp, struct file *filp)
                }
        }
 
+       SRpnt = st_allocate_request(STp);
+       if (!SRpnt) {
+               retval = STp->buffer->syscall_result;
+               goto err_out;
+       }
+
        if (STp->omit_blklims)
                STp->min_block = STp->max_block = (-1);
        else {
                memset((void *) &cmd[0], 0, MAX_COMMAND_SIZE);
                cmd[0] = READ_BLOCK_LIMITS;
 
-               SRpnt = st_do_scsi(SRpnt, STp, cmd, 6, DMA_FROM_DEVICE,
-                                  STp->device->request_queue->rq_timeout,
-                                  MAX_READY_RETRIES, 1);
-               if (!SRpnt) {
-                       retval = (STp->buffer)->syscall_result;
+               retval = st_scsi_kern_execute(SRpnt, cmd, DMA_FROM_DEVICE,
+                                             STp->buffer->b_data, 6,
+                                             STp->device->request_queue->rq_timeout,
+                                             MAX_READY_RETRIES);
+               if (retval) {
+                       st_release_request(SRpnt);
                        goto err_out;
                }
 
@@ -1054,11 +1061,12 @@ static int check_tape(struct scsi_tape *STp, struct file *filp)
        cmd[0] = MODE_SENSE;
        cmd[4] = 12;
 
-       SRpnt = st_do_scsi(SRpnt, STp, cmd, 12, DMA_FROM_DEVICE,
-                          STp->device->request_queue->rq_timeout,
-                          MAX_READY_RETRIES, 1);
-       if (!SRpnt) {
-               retval = (STp->buffer)->syscall_result;
+       retval = st_scsi_kern_execute(SRpnt, cmd, DMA_FROM_DEVICE,
+                                     STp->buffer->b_data, 12,
+                                     STp->device->request_queue->rq_timeout,
+                                     MAX_READY_RETRIES);
+       if (retval) {
+               st_release_request(SRpnt);
                goto err_out;
        }