cvs commit: src/sys/coda coda_vnops.c src/sys/compat/linux linux_getcwd.c src/sys/fs/devfs devfs_vnops.c src/sys/fs/hpfs hpfs_vnops.c src/sys/fs/msdosfs msdosfs_lookup.c src/sys/fs/nwfs nwfs_vnops

Alfred Perlstein alfred at freebsd.org
Wed Apr 13 18:38:42 PDT 2005


* Jeff Roberson <jroberson at chesapeake.net> [050413 15:31] wrote:
> On Wed, 13 Apr 2005, Alfred Perlstein wrote:
> 
> > * Jeff Roberson <jeff at FreeBSD.org> [050413 03:59] wrote:
> > > jeff        2005-04-13 10:59:10 UTC
> > >
> > >   FreeBSD src repository
> > >
> > >   Modified files:
> > >     sys/coda             coda_vnops.c
> > >     sys/compat/linux     linux_getcwd.c
> > >   Log:
> > >    - Change all filesystems and vfs_cache to relock the dvp once the child is
> > >      locked in the ISDOTDOT case.  Se vfs_lookup.c r1.79 for details.
> >
> > Sorry to bumble into your way, but can you explain this?  I thought
> > the lock order was always dvp->vp, doing a vp->dvp lock is a reversal
> > and can cause deadlock.  I guess I'm missing something, can you explain
> > please?
> 
> For ISDOTDOT dvp is really the child of vp.  For example
> 
> a/b/c
> 
> b/.. is a, and a must be locked before b.  So b must be unlocked before we
> can lock ..(a), and then b must be locked again.

Ok thanks!

-- 
- Alfred Perlstein
- email: bright at mu.org cell: 408-480-4684


More information about the cvs-src mailing list