Subject: Re: kern/642: lstat() returns wrong inode for symlink?
To: Charles M. Hannum <mycroft@gnu.ai.mit.edu>
From: Simon J. Gerraty <sjg@frodo.dn.itg.telecom.com.au>
List: netbsd-bugs
Date: 12/16/1994 11:31:48
> root:188# ls -idl /sys /usr/src /src /src/sys
> 2 lrwxr-xr-x 1 root wheel 11 Nov 17 16:58 /sys@ -> usr/src/sys
> 2 lrwxr-xr-x 1 root wheel 4 Nov 17 16:29 /usr/src@ -> /src
> 2 drwxr-xr-x 19 root wheel 512 Dec 7 15:18 /src/
> 7552 drwxrwxr-x 25 root wheel 512 Nov 7 11:32 /src/sys/
>
> Thus /sys and /src get the same dev/inode as the root directory!
>
> In 4.4-Lite, symlinks appear to have the inode number and time stamps
> of the directory they're in. This is allegedly a feature, though I'm
> starting to think it's one of the silliest changes I've seen yet.
Ah! So the symlink data (the pointer) is in the directory entry?
I thought they were going to still use an inode and put the data in
that.... using the directory entry is a neat idea, bound to improve
filesystem performance.
Thanks for the enlightenment, that explains both why the filesystem
appears to work, and why it seems to defy my previous experience :-)
It also gives me more confidence that the basic NFS server is not
totally flawed in its design - though it will need serious hacking to
make it work on a 4.4 based system.
And to answer the obvious question... Why am I doing this?
For a firewall. I want to be able to mount the filesystems on the
external firewall on a system inside the firewall. I want TCP based
NFS, I want strong authentication and I do not want a port mapper
running on any of these machines. All adds up to a serious hack. A
user-land server is an easy solution. I _need_ it on some SunOS
machines and some HP/UX ones would be cool too.
The alternative is to port NetBSD's NFS to these machines....
Anyone done that?
--sjg