Subject: Re: How to resolve the filename(s) for a vnode?
To: None <tech-kern@netbsd.org>
From: Jed Davis <jdev@panix.com>
List: tech-kern
Date: 10/24/2005 21:55:12
Jason Thorpe <thorpej@shagadelic.org> writes:

> On Oct 19, 2005, at 11:38 AM, Bill Studenmund wrote:
>
>> If you wanted to go the pseudo filename route, you could make a fake
>> directory in the root (hooking into VOP_LOOKUP(). For any lookup in
>> that
>> directory, you just do an unmapping of hex-dump-file-handle, and call
>> VFS_FHTOVP() on your mount point.
>
> FWIW... Mac OS X has something called "volfs" which is ... very much
> like this (some of the details are different, but it basically the
> same idea).  Carbon uses it to provide old Mac OS-style file access
> semantics.

They also got the permission check more or less right; that is, in the
exactly-one-parent case, lacking execute permission on any ancestor of
a file will prevent accessing it by number via volfs.

-- 
(let ((C call-with-current-continuation)) (apply (lambda (x y) (x y)) (map
((lambda (r) ((C C) (lambda (s) (r (lambda l (apply (s s) l))))))  (lambda
(f) (lambda (l) (if (null? l) C (lambda (k) (display (car l)) ((f (cdr l))
(C k)))))))    '((#\J #\d #\D #\v #\s) (#\e #\space #\a #\i #\newline)))))