Hi,
this morning i had a machine panic with
panic: update: rofs mod
Starting stack trace...
panic(ffffffff81df5736) at panic+0x11d
ffs_sync(ffff800001433400,3,0,fffffd887f7bee40,ffff8000ffff9b30) at
ffs_sync+0x1f3
sync_fsync(ffff800023b1c428) at sync_fsync+0x144
VOP_FSYNC(fffffd816b8c3d20,fffffd887f7bee40,3,ffff8000ffff9b30) at
VOP_FSYNC+0x4b
syncer_thread(ffff8000ffff9b30) at syncer_thread+0x1af
end trace frame: 0x0, count: 252
End of stack trace.
This is an OpenBSD 6.8.
The error comes from ffs_sync() in ufs/ffs/ffs_vfsops.c, as they are no
non-ffs filesystems mounted.
Maybe this is related:
As this box has some large filesystems, we mount them read-only and only go
to read-write when we actually need to change contents. For some of the
filesystems thats multiple times per day.
fs check needed to repair a few things on /home and /var, but those are
always moutned rw, and not large.
Anything else i could look at?
/Benno
int
ffs_sync(struct mount *mp, int waitfor, int stall, struct ucred *cred,
struct proc *p)
{
struct ufsmount *ump = VFSTOUFS(mp);
struct fs *fs;
int error, allerror = 0, count, clean, fmod;
struct ffs_sync_args fsa;
fs = ump->um_fs;
/*
* Write back modified superblock.
* Consistency check that the superblock
* is still in the buffer cache.
*/
if (fs->fs_fmod != 0 && fs->fs_ronly != 0) {
printf("fs = %s\n", fs->fs_fsmnt);
panic("update: rofs mod");
}