Subject: Re: Hard links -> symlink
To: None <tech-userlevel@NetBSD.ORG>
From: Charles Hannum <mycroft@deshaw.com>
List: tech-userlevel
Date: 12/19/1995 00:21:52
In article <199512172120.NAA16944@toccata.fugue.com> mellon@fugue.com
(Ted Lemon) writes:

   > NetBSD uses hard links between directories, e.g. between
   > /usr/sbin/sendmail and /usr/bin/mailq.  This is wrong for two reasons:
   > 	* The two directories might be on different filesystems.
   > 	* AFS doesn't allow hard links between directories.

After some consideration, I throw out the following idea:

1) Have an option to put symlinks, with absolute paths, in the build
tree.  (Absolute paths are necessary for the case of symlinking a
directory to another place; a relative path would more likely become
incorrect.)

2) Use this option when building distributions.

3) Have the installation script, if requested, extract the symlink
info from the tar files and patch them to be hard links.

   [...], but I would see the performance hit from using symlinks on
   frequently-accessed files.

I wonder about the feasibility of caching the target of a symlink.
This would obviously require invalidating the cache if there is a
change affecting any of the branches you follow to get to the target,
which may, in particular, be infeasible under NFS (without leases).
It seems to me that this problem is also intimately related to caching
of full path lookups at the VFS layer; isn't there a Sprite paper
about this somewhere?