cvs commit: src/sys/fs/deadfs dead_vnops.c src/sys/kern vfs_lookup.c

Attilio Rao attilio at freebsd.org
Mon Jan 22 16:02:45 UTC 2007


2007/1/22, Kostik Belousov <kostikbel at gmail.com>:
> On Mon, Jan 22, 2007 at 11:53:50AM +0000, Bjoern A. Zeeb wrote:
> > On Mon, 22 Jan 2007, Konstantin Belousov wrote:
> >
> > >kib         2007-01-22 11:25:22 UTC
> > >
> > > FreeBSD src repository
> > >
> > > Modified files:
> > >   sys/fs/deadfs        dead_vnops.c
> > >   sys/kern             vfs_lookup.c
> > > Log:
> > > Below is slightly edited description of the LOR by Tor Egge:
> > >
> > > --------------------------
> > > [Deadlock] is caused by a lock order reversal in vfs_lookup(), where
> > > [some] process is trying to lock a directory vnode, that is the parent
> > > directory of covered vnode) while holding an exclusive vnode lock on
> > > covering vnode.
> > >....
> > > To fix the LOR, ups@ noted that when crossing the mount point, ni_dvp
> > > is actually not used by the callers of namei. Thus, placeholder deadfs
> > > vnode vp_crossmp is introduced that is filled into ni_dvp.
> >
> > which of the LOR #s on "The LOR page" can be marked "patched" with
> > this commit?
> >
> > http://sources.zabbadoz.net/freebsd/lor.html
>
> None, your page lists only LORs that are detectable by WITNESS. This one is
> between lockmgr lock and vfs_busy(), both of them are invisible to WITNESS.

FYI, I tried to add WITNESS support to lockmgr but kernel hangs on a
vfs lockmgr. This is a very strange bug and it suggests their
implementation is very fragile (from this the necessity to rewrite
them: //depot/user/attilio/attilio_lockmgr/... on perforce).


-- 
Peace can only be achieved by understanding - A. Einstein


More information about the cvs-src mailing list