Skip to content

file_open: Do not return -EROFS when opening non-regular files#2164

Open
francescolavra wants to merge 2 commits into
masterfrom
fix/rofs
Open

file_open: Do not return -EROFS when opening non-regular files#2164
francescolavra wants to merge 2 commits into
masterfrom
fix/rofs

Conversation

@francescolavra
Copy link
Copy Markdown
Member

open() with O_WRONLY or O_RDWR on device files like /dev/null returns EROFS when the readonly_rootfs manifest option is enabled. Writes to non-regular files do not modify the filesystem, so these files should be exempt from the read-only check.

Closes #2134

Francesco Lavra added 2 commits May 24, 2026 19:58
The is_dir() call is somewhat expensive, as is does a table lookup, and
file_open() contains a couple of these function calls; then, there is a
file_type_from_tuple() call which can potentially re-do the same lookups
again.
To avoid multiple table lookups, move the file_type_from_tuple() call at
the top of the function, so that the `type` variable can be compared
against known values in the rest of the function.
No functional changes.
open() with O_WRONLY or O_RDWR on device files like /dev/null returns EROFS
when the `readonly_rootfs` manifest option is enabled. Writes to
non-regular files do not modify the filesystem, so these files should be
exempt from the read-only check.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

readonly_rootfs blocks open(O_WRONLY|O_RDWR) on device files

1 participant