Subject: Re: funlink() for fun!
To: NetBSD Kernel Technical Discussion List <tech-kern@NetBSD.org>
From: Greywolf <greywolf@starwolf.com>
List: tech-kern
Date: 07/11/2003 19:20:48
Thus spake Greg A. Woods ("GAW> ") sometime Today...
GAW> But that's the whole point of funlink() (and perhaps even some of the
GAW> other f*() calls, such as fchdir()) -- turn an operation on a file into
GAW> an operation on a filename (i.e. a link to a file).
<setattr param="baud" value="110">
fchdir does not operate on a filename. It operates on a DESCRIPTOR which
ultimately HAS NO MEMORY, CACHE or CONNECTION _whatsoever_ to the original
NAME. This DESCRIPTOR ultimately contains a reference to a VNODE which
points to a FILESYSTEM OBJECT, i.e. METADATA.
There is a difference between METADATA and a FILENAME. The FILENAME
gets you the location, ultimately, of the METADATA, at which point the
ONLY THING that is going to remember the FILENAME is going to be the *user's
program*.
The things that is pretty much stopping funlink from being practical
are that potentially many names correspond to a particular file, and
there needs to be some cached pointer to the dirent being referenced.
QED.
Now, is there anyone ELSE (put your hand down, Greg) who wishes to
refute this?
--*greywolf;
--
NetBSD: the free unix for the rest of us.