Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Apr 2005 18:31:17 -0400 (EDT)
From:      Jeff Roberson <jroberson@chesapeake.net>
To:        Alfred Perlstein <alfred@FreeBSD.org>
Cc:        cvs-all@FreeBSD.org
Subject:   Re: 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
Message-ID:  <20050413182958.L28571@mail.chesapeake.net>
In-Reply-To: <20050413195741.GE60345@elvis.mu.org>
References:  <200504131059.j3DAxAUf039007@repoman.freebsd.org> <20050413195741.GE60345@elvis.mu.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 13 Apr 2005, Alfred Perlstein wrote:

> * Jeff Roberson <jeff@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@mu.org cell: 408-480-4684
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050413182958.L28571>