sr: Switch the sector size back to 2048 if sr_read_sector() changed it.
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>
Fri, 4 Dec 2020 16:48:49 +0000 (17:48 +0100)
committerJens Axboe <axboe@kernel.dk>
Sat, 12 Dec 2020 18:12:25 +0000 (11:12 -0700)
sr_read_sector() is hardly used since v2.3.16. Its only purpose is to
check if it is a XA medium via sr_is_xa(). This check is only enabled if
the module parameter `xa_test' is enabled.

Change the sector size back to 2048 if it was changed. With this change,
there is no lazy sector size changing left.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/scsi/sr_ioctl.c

index ffcf902..5703f84 100644 (file)
@@ -549,6 +549,8 @@ static int sr_read_sector(Scsi_CD *cd, int lba, int blksize, unsigned char *dest
        cgc.timeout = IOCTL_TIMEOUT;
        rc = sr_do_ioctl(cd, &cgc);
 
+       if (blksize != CD_FRAMESIZE)
+               rc |= sr_set_blocklength(cd, CD_FRAMESIZE);
        return rc;
 }