Subject: Re: CVS commit: src (vnode stuff)
To: None <>
From: Geoff Wing <>
List: current-users
Date: 12/10/2006 11:05:30
Chuck Silvers <> typed:
: Module Name:	src
: Committed By:	chs
: Date:		Sat Dec  9 16:11:52 UTC 2006
: Modified Files:
: Log Message:
: a smorgasbord of improvements to vnode locking and path lookup:
:  - LOCKPARENT is no longer relevant for lookup(), relookup() or VOP_LOOKUP().
:    these now always return the parent vnode locked.  namei() works as before.
:    lookup() and various other paths no longer acquire vnode locks in the
:    wrong order via vrele().  fixes PR 32535.
:    as a nice side effect, path lookup is also up to 25% faster.
:  - the above allows us to get rid of PDIRUNLOCK.
:  - also get rid of WANTPARENT (just use LOCKPARENT and unlock it).
:  - remove an assumption in layer_node_find() that all file systems implement
:    a recursive VOP_LOCK() (unionfs doesn't).
:  - require that all file systems supply vfs_vptofh and vfs_fhtovp routines.
:    fill in eopnotsupp() for file systems that don't support being exported
:    and remove the checks for NULL.  (layerfs calls these without checking.)
:  - in union_lookup1(), don't change refcounts in the ISDOTDOT case, just
:    adjust which vnode is locked.  fixes PR 33374.
:  - apply fixes for ufs_rename() from ufs_vnops.c rev. 1.61 to ext2fs_rename().

A minute after booting I started X, and had six or eight processes stuck
in vnlock (several terms and inetd).  And I hadn't even got up to the
point where I (manually) union mount :-(

Haven't retried yet - will do so tomorrow (twelve hours or so).

Any pointers on debugging this?

i386/pentiumD (thus ``multi''-cpu)