Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S265016AbTFLVqN (ORCPT ); Thu, 12 Jun 2003 17:46:13 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S265017AbTFLVqM (ORCPT ); Thu, 12 Jun 2003 17:46:12 -0400 Received: from DELFT.AURA.CS.CMU.EDU ([128.2.206.88]:29639 "EHLO delft.aura.cs.cmu.edu") by vger.kernel.org with ESMTP id S265016AbTFLVqC (ORCPT ); Thu, 12 Jun 2003 17:46:02 -0400 Date: Thu, 12 Jun 2003 17:59:26 -0400 To: Trond Myklebust Cc: Alan Cox , Linus Torvalds , viro@parcelfarce.linux.theplanet.co.uk, Frank Cusack , Marcelo Tosatti , lkml Subject: Re: [PATCH] nfs_unlink() race (was: nfs_refresh_inode: inode number mismatch) Message-ID: <20030612215926.GA11684@delft.aura.cs.cmu.edu> Mail-Followup-To: Trond Myklebust , Alan Cox , Linus Torvalds , viro@parcelfarce.linux.theplanet.co.uk, Frank Cusack , Marcelo Tosatti , lkml References: <1055352127.2419.25.camel@dhcp22.swansea.linux.org.uk> <16103.26865.361044.360120@charged.uio.no> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.4i From: Jan Harkes Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1582 Lines: 42 On Wed, Jun 11, 2003 at 07:47:24PM +0200, Trond Myklebust wrote: > >>>>> " " == Trond Myklebust writes: > > > 2.4 has the 'return ESTALE if current dir fails d_revalidate()' > > test. Looks like the vfat stuff has the same problem that > > I should learn to complete my own sentences before sending... The > above should read: > > Looks like the vfat stuff has the same problem that Coda did. It is > unintentionally triggering the ESTALE code, as it assumes that > d_revalidate() is advisory only. Coda still has the problem with 2.4. The only thing I have been telling people that hit the problem is to take the revalidate patch out. btw. The sheer number of problem cases is already reduced significantly by the following patch which avoids calling revalidate on every name that happens to start with a '.'. Jan diff -urN --exclude-from=dontdiff linux-2.4.21-rc2/fs/namei.c linux-2.4.21-rc2-coda/fs/namei.c --- linux-2.4.21-rc2/fs/namei.c 2003-05-09 02:20:44.000000000 -0400 +++ linux-2.4.21-rc2-coda/fs/namei.c 2003-05-14 02:23:07.000000000 -0400 @@ -627,6 +627,8 @@ nd->last_type = LAST_DOT; else if (this.len == 2 && this.name[1] == '.') nd->last_type = LAST_DOTDOT; + else + goto return_base; return_reval: /* * We bypassed the ordinary revalidation routines. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/