[OpenAFS-devel] AFS/DFS Mount points
Dean Anderson
dean@av8.com
Mon, 11 Apr 2005 14:16:32 -0400 (EDT)
On Mon, 11 Apr 2005, Jeffrey Hutzelman wrote:
> > [root@vista xxx]# ln -s \#asdfasf ddd
> > [root@vista xxx]# ls
> > ddd
> > [root@vista xxx]# ls -l ddd
> > ls: ddd: No such device
> > [root@vista xxx]# ls -l
> > ls: ddd: No such device
> > total 0
> > [root@vista xxx]# rm ddd
> > rm: cannot remove `ddd': No such device
>
> Which refutes none of what I said.
I'm not disputing the way that AFS works internally. The point is that it
works wrongly. (though I think perhaps the example refutes the point that
the mode is somehow special) The commands I listed are not unreasonable
for users (and programs) to execute. '#' and '%' are valid characters for
filenames, so they are valid to have in targets for symlinks. They just
happen to be unusual because # and % have special meanings in several
shells.
If mount points were a special type of inode, then it would always work
correctly, since the only way to create such an inode would be through the
fs command. I don't think this is big change, work-wise.
Another benefit is that the cache manager wouldn't have to read the
target of a symlink on a stat, and would have more unix-like semantics.
(stat'ing a symlink is another AFS/DFS oddity)
It is unclear why a special inode type wasn't created in the first place,
but that reason seems to be lost in time. For whatever reason, AFS just
did it that way, DFS just did what AFS did. If there once was a good
reason, that reason seems to have disappeared.
--Dean
--
Av8 Internet Prepared to pay a premium for better service?
www.av8.net faster, more reliable, better service
617 344 9000