Source-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: syssrc
Module Name: syssrc
Committed By: fvdl
Date: Thu Oct 21 19:21:32 UTC 1999
Modified Files:
syssrc/sys/kern [fvdl-softdep]: vfs_subr.c vfs_syscalls.c
syssrc/sys/sys [fvdl-softdep]: mount.h
syssrc/sys/ufs/ffs [fvdl-softdep]: ffs_softdep.c
Log Message:
Add workaround hacks to enable the softdep code to call getnewvnode()
when a filesystem is being unmounted. The problem is that the softdep
code stored inode numbers in the worklist structures, and does not
use vnodes. So VFS_VGET must be used to get a vnode during the final
flush stages, and this can call getnewvnode(), resulting in
a vfs_busy() + MNT_UNMOUNT hang.
I've tried to make the softdep code use vnodes, but that's a pain,
since it gets called at points were vnode ops are dangerous (i.e.
interrupt context, and uncertainty whether a vnode is locked, etc).
This is all icky stuff, but it does get things much closer to a
working state..
To generate a diff of this commit:
cvs rdiff -r1.112.4.1 -r1.112.4.2 syssrc/sys/kern/vfs_subr.c
cvs rdiff -r1.147.4.1 -r1.147.4.2 syssrc/sys/kern/vfs_syscalls.c
cvs rdiff -r1.77.4.1 -r1.77.4.2 syssrc/sys/sys/mount.h
cvs rdiff -r1.1.2.3 -r1.1.2.4 syssrc/sys/ufs/ffs/ffs_softdep.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Home |
Main Index |
Thread Index |
Old Index