diff options
| -rw-r--r-- | drivers/scsi/sd.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index ab75ebd518a7..3b45f7fc5620 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c | |||
| @@ -2624,6 +2624,7 @@ sd_read_write_protect_flag(struct scsi_disk *sdkp, unsigned char *buffer) | |||
| 2624 | int res; | 2624 | int res; |
| 2625 | struct scsi_device *sdp = sdkp->device; | 2625 | struct scsi_device *sdp = sdkp->device; |
| 2626 | struct scsi_mode_data data; | 2626 | struct scsi_mode_data data; |
| 2627 | int disk_ro = get_disk_ro(sdkp->disk); | ||
| 2627 | int old_wp = sdkp->write_prot; | 2628 | int old_wp = sdkp->write_prot; |
| 2628 | 2629 | ||
| 2629 | set_disk_ro(sdkp->disk, 0); | 2630 | set_disk_ro(sdkp->disk, 0); |
| @@ -2664,7 +2665,7 @@ sd_read_write_protect_flag(struct scsi_disk *sdkp, unsigned char *buffer) | |||
| 2664 | "Test WP failed, assume Write Enabled\n"); | 2665 | "Test WP failed, assume Write Enabled\n"); |
| 2665 | } else { | 2666 | } else { |
| 2666 | sdkp->write_prot = ((data.device_specific & 0x80) != 0); | 2667 | sdkp->write_prot = ((data.device_specific & 0x80) != 0); |
| 2667 | set_disk_ro(sdkp->disk, sdkp->write_prot); | 2668 | set_disk_ro(sdkp->disk, sdkp->write_prot || disk_ro); |
| 2668 | if (sdkp->first_scan || old_wp != sdkp->write_prot) { | 2669 | if (sdkp->first_scan || old_wp != sdkp->write_prot) { |
| 2669 | sd_printk(KERN_NOTICE, sdkp, "Write Protect is %s\n", | 2670 | sd_printk(KERN_NOTICE, sdkp, "Write Protect is %s\n", |
| 2670 | sdkp->write_prot ? "on" : "off"); | 2671 | sdkp->write_prot ? "on" : "off"); |
