OS/RedHat Bug Report
[BUG] EROFS ("Read-only file system") error is incorretly returned when trying to open already existing file with 'O_CREAT' on a read-only filesystem
SYPER
2014. 4. 24. 16:35
EROFS ("Read-only file system") error is incorretly returned when trying to open already existing file with 'O_CREAT' on a read-only filesystem
04시 25분 2013년 10월 18일 업데이트
문제
¶If given path ends up with a file/symlink residing on a read-only filesystem, an attempt to issue open with that path and 'O_CREAT' flag results in EROFS ("Read-only file system").
¶This affects in particular:
* regular files
* symlinks
* device nodes
* bind mounts
환경
- Red Hat Enterprise Linux 6
해결
¶Update to kernel version 2.6.32-358.10.1.el6 or later. See RHSA-2013:0911 for more details.
근본 원인
¶A bug in the do_filp_open() function caused it to exit early if any write access was requested on a read-only file system. This prevented the opening of device nodes on a read-only file system. With this update, the do_filp_open() has been fixed to no longer exit if a write request is made on a read-only file system.
¶The problem has been tracked in Bugzilla #920752.
진단 단계
¶Example steps to confirm this behaviour:
dd if=/dev/zero of=foo bs=1M count=10
losetup -vf foo
mkfs.ext3 /dev/loop0
mount /dev/loop0 /mnt
mknod /mnt/null c 1 3
umount /mnt
- mount the filesystem read-only:
mount -o ro /dev/loop0 /mnt
- Try to write to the filesystem:
echo foo >> /mnt/null