From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Petr Vandrovec" Subject: Re: [PATCH 2.4.19pre8][RFC] remove-NFS-close-to-open from V Date: Thu, 17 Oct 2002 23:22:35 +0200 Sender: linux-fsdevel-owner@vger.kernel.org Message-ID: <4E52C4F573C@vcnet.vc.cvut.cz> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7BIT Cc: marcelo@conectiva.com.br, alan@lxorguk.ukuu.org.uk, Alexander Viro , Trond Myklebust , linux-fsdevel@vger.kernel.org Return-path: To: Jan Harkes List-Id: linux-fsdevel.vger.kernel.org On 17 Oct 02 at 16:38, Jan Harkes wrote: > > Originally, returning a error from d_revalidate in cached_lookup would > force a subsequent real_lookup. After the patch, returning an error from > d_revalidate propagates (in some cases) ESTALE back up to userspace. For example if you do 'ls -l' in root directory of mounted ncpfs filesystem because of ncpfs did not expect that somebody can call it with entry name "/" (which contains illegal character for filename, '/'), and so it refused to believe that such entry is valid... Best regards, Petr Vandrovec vandrove@vc.cvut.cz > --- 1.19/fs/namei.c Thu Feb 28 05:57:29 2002 > +++ 1.20/fs/namei.c Tue Mar 12 07:35:02 2002 > @@ -627,6 +627,19 @@ > nd->last_type = LAST_DOT; > else if (this.len == 2 && this.name[1] == '.') > nd->last_type = LAST_DOTDOT; > +return_reval: > + /* > + * We bypassed the ordinary revalidation routines. > + * Check the cached dentry for staleness. > + */ > + dentry = nd->dentry; > + if (dentry && dentry->d_op && dentry->d_op->d_revalidate) { > + err = -ESTALE; > + if (!dentry->d_op->d_revalidate(dentry, 0)) { > + d_invalidate(dentry); > + break; > + } > + } > return_base: > return 0; > out_dput: > > - > To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >