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

Jeff Roberson jroberson at chesapeake.net
Wed Apr 13 15:31:21 PDT 2005


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.

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


More information about the cvs-src mailing list