Subject: Re: panic: softdep_fsync: pending ops
To: Frank van der Linden <frank@wins.uva.nl>
From: PER4MANCE, J. Dolecek <jdolecek@per4mance.cz>
List: current-users
Date: 03/14/2000 14:57:09
BTW, I also randomly discovered that in sys_mount(), failure to allocate
syncvnode can be sometimes ignored - around line 351 of vfs_syscalls.c,
it is like:
VOP_UNLOCK(vp, 0);
if ((mp->mnt_flag & (MNT_RDONLY | MNT_ASYNC)) == 0)
error = vfs_allocate_syncvnode(mp);
vfs_unbusy(mp);
(void) VFS_STATFS(mp, &mp->mnt_stat, p);
if ((error = VFS_START(mp, 0, p)))
vrele(vp);
The sync vnode could probably be allocated before the mountpoint
is added to the mountlist and error should be handled.
Also handling of error if VFS_START() fails seems to be incomplete -
shouldn't it remove the mountpoint from mountlist as well ?
dounmount() ignores return value from vfs_allocate_syncvnode()
altogether -
it that ok ?
Jaromir