The patch appears to work for me on OpenBSD 3.9 i386.

--- sys/dev/vnd.c.orig  Fri Sep  8 03:41:21 2006
+++ sys/dev/vnd.c       Fri Sep  8 04:56:05 2006
@@ -817,7 +817,7 @@
                 * have to worry about them.
                 */
                NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, vio->vnd_file, p);
-               if ((error = vn_open(&nd, FREAD|FWRITE, 0)) != 0) {
+               if ((error = vn_open(&nd, FREAD|FWRITE, 0)) != 0 && (error != 
EROFS || (error = vn_open(&nd, FREAD, 0)) != 0)) {
                        vndunlock(vnd);
                        return (error);
                }

Reply via email to