Good news everyone! devfs has been
rewritten on top of the in-tree C++ VFS library. This improves compliance with the
fuchsia.io FIDL protocols and removes a longstanding chunk of technical debt. This change is expected to merge in the next hour or so.
If you don't interact with /dev/, you can stop reading here.
If you're still reading, you must be feeling dread - but fear not! We've gone to considerable lengths to preserve devfs' behavior bug-for-bug with one known exception: devfs will now
reject attempts to open a device which isn't backed by a functioning driver. Prior to this
change devfs would silently open the node as a directory, in spite of the presence of
OpenFlags.NOT_DIRECTORY.
The only type of interaction found to be affected by this change is `open(path_rooted_at_devfs, O_RDWR)`. The presence of `O_RDWR` implies `NOT_DIRECTORY` in our libc implementation - this is done to match POSIX behavior. This will now result in the connection being closed; if
OpenFlags.DESCRIBE was passed, the OnOpen event will contain `ZX_ERR_NOT_FILE` which our libc implementation translates to `EISDIR`.
Callers may need to replace `O_RDWR` with `O_RDONLY` or `O_RDWR | O_DIRECTORY`.
Please reach out if you believe you are affected.
Thanks.
tamird