public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] check whether a disk got writeable in sd_open
@ 2003-08-25 19:36 Christoph Hellwig
  0 siblings, 0 replies; only message in thread
From: Christoph Hellwig @ 2003-08-25 19:36 UTC (permalink / raw)
  To: James Bottomley; +Cc: linux-scsi

This is the 2.5 version of a 2.4 patch posted to the list long
ago, the aacraid thread reminded me of it.

The problem is that certain highend arrays allow to mark a r/o
volume writeable on the fly so we have to call check_disk_change
for write-protected devices in sd_open, too.


diff -Nru a/drivers/scsi/sd.c b/drivers/scsi/sd.c
--- a/drivers/scsi/sd.c	Wed Jun 25 11:47:26 2003
+++ b/drivers/scsi/sd.c	Wed Jun 25 11:47:26 2003
@@ -368,25 +368,24 @@
 	if (!scsi_block_when_processing_errors(sdev))
 		goto error_out;
 
-	if (sdev->removable) {
+	if (sdev->removable || sdkp->write_prot)
 		check_disk_change(inode->i_bdev);
 
-		/*
-		 * If the drive is empty, just let the open fail.
-		 */
-		retval = -ENOMEDIUM;
-		if ((!sdkp->media_present) && !(filp->f_flags & O_NDELAY))
-			goto error_out;
+	/*
+	 * If the drive is empty, just let the open fail.
+	 */
+	retval = -ENOMEDIUM;
+	if (sdev->removable && !sdkp->media_present &&
+	    !(filp->f_flags & O_NDELAY))
+		goto error_out;
 
-		/*
-		 * Similarly, if the device has the write protect tab set,
-		 * have the open fail if the user expects to be able to write
-		 * to the thing.
-		 */
-		retval = -EROFS;
-		if ((sdkp->write_prot) && (filp->f_mode & FMODE_WRITE))
-			goto error_out;
-	}
+	/*
+	 * If the device has the write protect tab set, have the open fail
+	 * if the user expects to be able to write to the thing.
+	 */
+	retval = -EROFS;
+	if (sdkp->write_prot && (filp->f_mode & FMODE_WRITE))
+		goto error_out;
 
 	/*
 	 * It is possible that the disk changing stuff resulted in

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2003-08-25 19:36 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-08-25 19:36 [PATCH] check whether a disk got writeable in sd_open Christoph Hellwig

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox