Subject: kern/1447: lstat flushes vnodes from cache
To: None <gnats-bugs@gnats.netbsd.org>
From: Wolfgang Solfrank <ws@charles.tools.de>
List: netbsd-bugs
Date: 09/10/1995 16:56:02
>Number:         1447
>Category:       kern
>Synopsis:       lstat flushes vnodes from cache
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    kern-bug-people (Kernel Bug People)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Sep 11 21:20:03 1995
>Last-Modified:
>Originator:     Wolfgang Solfrank
>Organization:
>Release:        NetBSD-current as of 09 Sep 95
>Environment:

System: NetBSD charles.tools.de 1.0A NetBSD 1.0A (charles) #129: Sat Sep 9 21:28:49 MET DST 1995 ws@kurt:/files/NetBSD/kernel/NetBSD/sys/arch/i386/compile/charles i386


>Description:

Since lstat wants to return the attributes of a symbolic link, which mostly are
defined as the attributes of the containing directory, it calls namei with
LOCKPARENT to get the parent vnode.

This is interpreted by lookup to not cache the result of the lookup AND to drop
any entry for this vnode from the name cache.

>How-To-Repeat:

Do any ls -l and kgdb (or ddb) through the lookup code. Watch the cache
entries being dropped from the cache.

>Fix:

Either change the symlink attribute interpretation, change the interpretation
of LOCKPARENT by `lookup' (don't know whether that's feasible), or introduce
yet another flag to namei.
>Audit-Trail:
>Unformatted: