http://bugzilla.novell.com/show_bug.cgi?id=584720 http://bugzilla.novell.com/show_bug.cgi?id=584720#c5 --- Comment #5 from Neil Brown <nfbrown@novell.com> 2010-05-06 04:15:57 UTC --- Upstream is being rather quiet on this. It needs input from Al Viro and he seems to be unavailable. My current draft patch is diff --git a/fs/namei.c b/fs/namei.c index a7dce91..256ae13 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -719,7 +719,11 @@ static int do_lookup(struct nameidata *nd, struct qstr *name, done: path->mnt = mnt; path->dentry = dentry; - __follow_mount(path); + if (__follow_mount(path) && + (path->mnt->mnt_sb->s_type->fs_flags & FS_REVAL_DOT)) { + if (!path->dentry->d_op->d_revalidate(path->dentry, nd)) + return -ESTALE; + } return 0; need_lookup: @@ -1619,6 +1623,7 @@ static struct file *do_last(struct nameidata *nd, struct path *path, switch (nd->last_type) { case LAST_DOTDOT: follow_dotdot(nd); + case LAST_DOT: dir = nd->path.dentry; if (nd->path.mnt->mnt_sb->s_type->fs_flags & FS_REVAL_DOT) { if (!dir->d_op->d_revalidate(dir, nd)) { @@ -1627,7 +1632,6 @@ static struct file *do_last(struct nameidata *nd, struct path *path, } } /* fallthrough */ - case LAST_DOT: case LAST_ROOT: if (open_flag & O_CREAT) goto exit; -- Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.