Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 2 Mar 2012 00:33:51 +0100
From:      Peter Holm <peter@holm.cc>
To:        John Baldwin <jhb@freebsd.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r226967 - head/sys/ufs/ufs
Message-ID:  <20120301233351.GA24773@x2.osted.lan>
In-Reply-To: <201203011647.41313.jhb@freebsd.org>
References:  <201110311501.p9VF1lrf020688@svn.freebsd.org> <201203011647.41313.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Mar 01, 2012 at 04:47:41PM -0500, John Baldwin wrote:
> On Monday, October 31, 2011 11:01:47 am Peter Holm wrote:
> > Author: pho
> > Date: Mon Oct 31 15:01:47 2011
> > New Revision: 226967
> > URL: http://svn.freebsd.org/changeset/base/226967
> > 
> > Log:
> >   The kern_renameat() looks up the fvp using the DELETE flag, which causes
> >   the removal of the name cache entry for fvp.
> >   
> >   Reported by:	Anton Yuzhaninov <citrin citrin ru>
> >   In collaboration with:	kib
> >   MFC after:	1 week
> > 
> > Modified:
> >   head/sys/ufs/ufs/ufs_vnops.c
> 
> So I ran into this at work recently, and even this fix applied I was still 
> seeing rename()'s that were seemingly not taking effect.  After getting some 
> extra KTR traces, I figured out that the same purge needs to be applied to the 
> destination vnode.  Specifically, the issue I ran into was that was renaming 
> 'foo' to 'bar', but lookups for 'bar' were still returning the old file.  The 
> reason was that a lookup after the namei(RENAME) of the destination while 
> ufs_rename() had its locks dropped was readding the name cache entry for 
> 'bar', and then a cache_lookup() of 'bar' would return the old vnode as long 
> as that vnode was valid (e.g. if it had a link in another location, or other 
> processes had an open file descriptor for it).  I'm currently testing the 
> patch below:
> 

You wouldn't happen to have a small test scenario that demonstrates
this? I'm not able to reproduce the problem, based on your
description.
I'll try some more tomorrow.

- Peter



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