Re: [PATCH] scsi: sd: Keep disk read-only when re-reading partition

From: Andy Shevchenko
Date: Thu Mar 01 2018 - 09:15:04 EST


On Thu, Mar 1, 2018 at 4:08 PM, Jeremy Cline <jeremy@xxxxxxxxxx> wrote:
> If the read-only flag is true on a SCSI disk, re-reading the partition
> table sets the flag back to false.
>
> To observe this bug, you can run:
>
> 1. blockdev --setro /dev/sda
> 2. blockdev --rereadpt /dev/sda
> 3. blockdev --getro /dev/sda
>
> This commit reads the disk's old state and combines it with the device
> disk-reported state rather than unconditionally marking it as RW.

> - sdkp->write_prot = ((data.device_specific & 0x80) != 0);
> + sdkp->write_prot = ((data.device_specific & 0x80) != 0) ||
> + disk_ro;

Perhaps
sdkp->write_prot = (data.device_specific & 0x80) || disk_ro;

will save a line.

--
With Best Regards,
Andy Shevchenko