OSDN Git Service

scsi: sr: Convert to scsi_execute_cmd()
authorMike Christie <michael.christie@oracle.com>
Thu, 29 Dec 2022 19:01:50 +0000 (13:01 -0600)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sat, 14 Jan 2023 02:34:09 +0000 (21:34 -0500)
scsi_execute*() is going to be removed. Convert sr to scsi_execute_cmd().

Signed-off-by: Mike Christie <michael.christie@oracle.com>
Reviewed-by: John Garry <john.g.garry@oracle.com>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/sr.c
drivers/scsi/sr_ioctl.c

index a278b73..9e51dcd 100644 (file)
@@ -170,10 +170,13 @@ static unsigned int sr_get_events(struct scsi_device *sdev)
        struct event_header *eh = (void *)buf;
        struct media_event_desc *med = (void *)(buf + 4);
        struct scsi_sense_hdr sshdr;
+       const struct scsi_exec_args exec_args = {
+               .sshdr = &sshdr,
+       };
        int result;
 
-       result = scsi_execute_req(sdev, cmd, DMA_FROM_DEVICE, buf, sizeof(buf),
-                                 &sshdr, SR_TIMEOUT, MAX_RETRIES, NULL);
+       result = scsi_execute_cmd(sdev, cmd, REQ_OP_DRV_IN, buf, sizeof(buf),
+                                 SR_TIMEOUT, MAX_RETRIES, &exec_args);
        if (scsi_sense_valid(&sshdr) && sshdr.sense_key == UNIT_ATTENTION)
                return DISK_EVENT_MEDIA_CHANGE;
 
@@ -730,8 +733,8 @@ static void get_sectorsize(struct scsi_cd *cd)
                memset(buffer, 0, sizeof(buffer));
 
                /* Do the command and wait.. */
-               the_result = scsi_execute_req(cd->device, cmd, DMA_FROM_DEVICE,
-                                             buffer, sizeof(buffer), NULL,
+               the_result = scsi_execute_cmd(cd->device, cmd, REQ_OP_DRV_IN,
+                                             buffer, sizeof(buffer),
                                              SR_TIMEOUT, MAX_RETRIES, NULL);
 
                retries--;
index fbdb512..5b0b35e 100644 (file)
@@ -188,13 +188,15 @@ static int sr_play_trkind(struct cdrom_device_info *cdi,
 int sr_do_ioctl(Scsi_CD *cd, struct packet_command *cgc)
 {
        struct scsi_device *SDev;
-       struct scsi_sense_hdr local_sshdr, *sshdr = &local_sshdr;
+       struct scsi_sense_hdr local_sshdr, *sshdr;
        int result, err = 0, retries = 0;
+       const struct scsi_exec_args exec_args = {
+               .sshdr = cgc->sshdr ? : &local_sshdr,
+       };
 
        SDev = cd->device;
 
-       if (cgc->sshdr)
-               sshdr = cgc->sshdr;
+       sshdr = exec_args.sshdr;
 
       retry:
        if (!scsi_block_when_processing_errors(SDev)) {
@@ -202,10 +204,11 @@ int sr_do_ioctl(Scsi_CD *cd, struct packet_command *cgc)
                goto out;
        }
 
-       result = scsi_execute(SDev, cgc->cmd, cgc->data_direction,
-                             cgc->buffer, cgc->buflen, NULL, sshdr,
-                             cgc->timeout, IOCTL_RETRIES, 0, 0, NULL);
-
+       result = scsi_execute_cmd(SDev, cgc->cmd,
+                                 cgc->data_direction == DMA_TO_DEVICE ?
+                                 REQ_OP_DRV_OUT : REQ_OP_DRV_IN, cgc->buffer,
+                                 cgc->buflen, cgc->timeout, IOCTL_RETRIES,
+                                 &exec_args);
        /* Minimal error checking.  Ignore cases we know about, and report the rest. */
        if (result < 0) {
                err = result;