From f9fb0ff54644ff2d71ead2794920bf58bd4b34e3 Mon Sep 17 00:00:00 2001 From: Ben Gras Date: Wed, 28 Jun 2006 10:03:18 +0000 Subject: [PATCH] Fix bug where safe conversion doesn't happen after 1st time in loop --- servers/fs/device.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/servers/fs/device.c b/servers/fs/device.c index 32f1029a1..4c0853055 100644 --- a/servers/fs/device.c +++ b/servers/fs/device.c @@ -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; -- 2.44.0