To answer my question: the error message comes from 9pfuse.
The extra bits are O_NOFOLLOW and O_LARGEFILE, both of
which seem harmless in this context. Try this:
diff -r 6db8fc2588f6 src/cmd/9pfuse/main.c
--- a/src/cmd/9pfuse/main.c Mon Oct 03 18:16:09 2011 -0400
+++ b/src/cmd/9pfuse/main.c Tue Oct 04 15:43:16 2011 -0400
@@ -577,6 +577,13 @@
openmode = flags&3;
flags &= ~3;
flags &= ~(O_DIRECTORY|O_NONBLOCK|O_LARGEFILE|O_CLOEXEC);
+#ifdef O_NOFOLLOW
+ flags &= ~O_NOFOLLOW
+#endif
+#ifdef O_LARGEFILE
+ flags &= ~O_LARGEFILE
+#endif
+
/*
* Discarding O_APPEND here is not completely wrong,
* because the host kernel will rewrite the offsets
@@ -594,7 +601,7 @@
* O_NONBLOCK -> ONONBLOCK
*/
if(flags){
- fprint(2, "unexpected open flags %#uo", (uint)in->flags);
+ fprint(2, "unexpected open flags %#uo\n", (uint)in->flags);
replyfuseerrno(m, EACCES);
return;
}