]> Zhao Yanbai Git Server - minix.git/commitdiff
Moved open-ATAPI-as-RW check to before open-first-time check.. otherwise
authorBen Gras <ben@minix3.org>
Tue, 9 Aug 2005 12:18:15 +0000 (12:18 +0000)
committerBen Gras <ben@minix3.org>
Tue, 9 Aug 2005 12:18:15 +0000 (12:18 +0000)
you can open an ATAPI device as RW if it's already opened for read.

drivers/at_wini/at_wini.c

index 0de6f7c3998108323fabc057b801cb943a8c5388..f9e35bcec961e2474b08ca41a35bfd869e676ee7 100644 (file)
@@ -364,6 +364,14 @@ message *m_ptr;
 #endif
   }
 
+#if ENABLE_ATAPI
+   if ((wn->state & ATAPI) && (m_ptr->COUNT & W_BIT))
+       return(EACCES);
+#endif
+
+   /* If it's not an ATAPI device, then don't open with RO_BIT. */
+   if (!(wn->state & ATAPI) && (m_ptr->COUNT & RO_BIT)) return EACCES;
+
   /* Partition the drive if it's being opened for the first time,
    * or being opened after being closed.
    */
@@ -371,13 +379,9 @@ message *m_ptr;
 #if ENABLE_ATAPI
        if (wn->state & ATAPI) {
                int r;
-
-               if (m_ptr->COUNT & W_BIT) return(EACCES);
                if ((r = atapi_open()) != OK) return(r);
        }
 #endif
-       /* If it's not an ATAPI device, then don't open read-only. */
-       if (!(wn->state & ATAPI) && (m_ptr->COUNT & RO_BIT)) return EACCES;
 
        /* Partition the disk. */
        partition(&w_dtab, w_drive * DEV_PER_DRIVE, P_PRIMARY, wn->state & ATAPI);