Re: NFS -- Hurd
Allover Stripes <firstname.lastname@example.org> writes:
> > If you look at the implementation of the NFS lookup call in the Hurd
> > nfsd (hurd/nfsd/ops.c:op_lookup) you will see that the server uses
> > O_NOTRANS to prevent such activation.
> Hmmm. Is this really a good idea? Won't this cause problems if, for
> example, there's a "mount point" in the filesystem being served? What
> if the server really does want to run translators?
Well, this is the current behavior of Sun NFS and most others; it
would have to be a configuration option for the server which way you
wanted it to run.
> Say, it wants to export via NFS its BSD filesystem; would it then
> send raw disk blocks across the network for the client to translate?
I can't understand at all what you mean. Why does the fact that it's
a BSD filesystem have anything to do with it? The point is that the
nfsd doesn't ever cross translator linkages (== mount points).
> That wasn't very clear. Suppose I have the following: antelope is
> running an NFS server. It exports /visible and everything under it.
> caribou is running an NFS client, importing the tree as /nfs. Now
> suppose the following occur: antelope:/visible/bsd has a translator
> set to "/bin/ufs /dev/hd0s3". Then if caribou tries to read and write
> caribou:/nfs/bsd, it starts a translator trying to read and write
> caribou's /dev/hd0s3.
Yes, that's right. This is thus a little more live than the Sun NFS
(for which the client doesn't see a mount at all). A server option
could usefully set whether the client ever sees a translator.
> At best it returns an error message; at worst severe lossage occurs.
> Alternatively, suppose antelope:/visible/foo has its translator set
> as /visible/bar. Then caribou:/nfs/foo apparently has its translator
> set to teh nonexistent /visible/bar. If you then set
> caribou:/nfs/foo's translator to /nfs/bar, reading the file works on
> caribou but not on antelope.
Yep, that's right.
> Some nightmares are to be expected when using NFS; but is this really
> the Right Thing?
Possibly not. NFS handles mount points poorly, and the flexibility of
translators makes it even harder to decide just what the Right Thing
is. The best I can think of is a plethora of server options so users
can pick which form of confusion they prefer.