]> Zhao Yanbai Git Server - minix.git/commitdiff
Fix bug where safe conversion doesn't happen after 1st time in loop
authorBen Gras <ben@minix3.org>
Wed, 28 Jun 2006 10:03:18 +0000 (10:03 +0000)
committerBen Gras <ben@minix3.org>
Wed, 28 Jun 2006 10:03:18 +0000 (10:03 +0000)
servers/fs/device.c

index 32f1029a1300bd8aa97269e165a16cf046a0890e..4c08530559f6fa06fc73597d2ba8a4b3db2bcb51 100644 (file)
@@ -297,6 +297,7 @@ int bytes;                  /* how many bytes to transfer */
 
   for (;;)
   {
+       int op_used;
         static cp_grant_id_t gids[NR_IOREQS];
         cp_grant_id_t gid = GRANT_INVALID;
        int vec_grants;
@@ -312,12 +313,14 @@ int bytes;                        /* how many bytes to transfer */
         m.ADDRESS  = buf;
 
        /* Convert parameters to 'safe mode'. */
+       op_used = op;
         safe = safe_io_conversion(dp->dmap_driver, dev, &gid,
-          &op, gids, NR_IOREQS, &m.IO_ENDPT, buf, &vec_grants, bytes, &pos);
+          &op_used, gids, NR_IOREQS, &m.IO_ENDPT, buf,
+         &vec_grants, bytes, &pos);
 
        /* Set up rest of the message. */
        if(safe) m.IO_GRANT = (char *) gid;
-       m.m_type   = op;
+       m.m_type   = op_used;
        m.DEVICE   = (dev >> MINOR) & BYTE;
        m.POSITION = pos;
        m.COUNT    = bytes;