NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/60625: fss(4): read-only mount quirks



>Number:         60625
>Category:       kern
>Synopsis:       fss(4): read-only mount quirks
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Aug 20 19:35:00 +0000 2026
>Originator:     Taylor R Campbell
>Release:        current, 11, 10, 9, ...
>Organization:
NetBSD Snapshot Filers LLC
>Environment:
>Description:

	ffs snapshots configured with ffs(4) can be mounted with the
	short command line:

# mount /dev/fss0 /mnt

	However, they are a little quirky:

# touch /mnt/x
touch: /mnt/x: Read-only file system
# umount /mnt
umount: /mnt/x: Read-only file system
# umount /mnt
#

	The touch(1) failure with EROFS is expected, but the _one-time_
	umount(8) failure with EROFS is baffling.

	For lfs, the quirk is a little less benign:

# fssconfig fss0 /lfs /snap
# mount /dev/fss0 /lfs
[ 553.3873306] WARNING: the log-structured file system is experimental
[ 553.3891477] WARNING: it may cause system crashes and/or corrupt data
# mount -t lfs /dev/fss0 /mnt
# umount /mnt
[ 565.8145600] panic: kernel diagnostic assertion "sup->su_nbytes >= osize" failed: file "/home/riastradh/netbsd/current/sys/ufs/lfs/lfs_segment.c", line 602 lfs_updatemeta: negative bytes (segment 1 short by 8192)
[ 565.8145600] lfs_updatemeta: ino 1, lbn 1, addr = 0x4a1

	Stack trace:

kern_assert
lfs_update_single
lfs_updatemeta
lfs_gather
lfs_writefile
lfs_segwrite
lfs_flushfiles
lfs_unmount
VFS_UNMOUNT
dounmount
sys_unmount
syscall

	Perhaps ffs just gets lucky in not even trying to write back to
	the file system.  But lfs should be able to recognize read-only
	media and not try to write back either, and the block device
	/dev/fssN should identify itself as a read-only medium to the
	file system.

>How-To-Repeat:

	ffs:

	1. fssconfig fss0 /ffs /snap
	2. mount /dev/fss0 /mnt
	3. touch /mnt/x
	4. umount /mnt

	lfs:

	1. fssconfig fss0 /lfs /snap
	2. mount /dev/fss0 /mnt
	3. umount /mnt

>Fix:

	Yes, please!




Home | Main Index | Thread Index | Old Index