scsi: cdrom: Remove the call to scsi_cmd_blk_ioctl() from cdrom_ioctl()
authorChristoph Hellwig <hch@lst.de>
Sat, 24 Jul 2021 07:20:17 +0000 (09:20 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 29 Jul 2021 02:24:25 +0000 (22:24 -0400)
Only the sr driver can handle SCSI passthrough requests, so move the call
to scsi_cmd_blk_ioctl() there.

Link: https://lore.kernel.org/r/20210724072033.1284840-9-hch@lst.de
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/block/Kconfig
drivers/block/paride/Kconfig
drivers/cdrom/cdrom.c
drivers/scsi/sr.c

index 63056cf..4652bcd 100644 (file)
@@ -74,7 +74,6 @@ config N64CART
 
 config CDROM
        tristate
-       select BLK_SCSI_REQUEST
 
 config GDROM
        tristate "SEGA Dreamcast GD-ROM drive"
index 7c6ae10..a295634 100644 (file)
@@ -27,7 +27,6 @@ config PARIDE_PCD
        tristate "Parallel port ATAPI CD-ROMs"
        depends on PARIDE
        select CDROM
-       select BLK_SCSI_REQUEST # only for the generic cdrom code
        help
          This option enables the high-level driver for ATAPI CD-ROM devices
          connected through a parallel port. If you chose to build PARIDE
index feb827e..8882b31 100644 (file)
@@ -3357,13 +3357,6 @@ int cdrom_ioctl(struct cdrom_device_info *cdi, struct block_device *bdev,
        void __user *argp = (void __user *)arg;
        int ret;
 
-       /*
-        * Try the generic SCSI command ioctl's first.
-        */
-       ret = scsi_cmd_blk_ioctl(bdev, mode, cmd, argp);
-       if (ret != -ENOTTY)
-               return ret;
-
        switch (cmd) {
        case CDROMMULTISESSION:
                return cdrom_ioctl_multisession(cdi, argp);
index c5e163a..7948416 100644 (file)
@@ -579,6 +579,9 @@ static int sr_block_ioctl(struct block_device *bdev, fmode_t mode, unsigned cmd,
        case SCSI_IOCTL_GET_BUS_NUMBER:
                break;
        default:
+               ret = scsi_cmd_blk_ioctl(bdev, mode, cmd, argp);
+               if (ret != -ENOTTY)
+                       goto put;
                ret = cdrom_ioctl(&cd->cdi, bdev, mode, cmd, arg);
                if (ret != -ENOSYS)
                        goto put;