On Fri, Sep 17, 1999 at 05:37:20PM +0900, Kuniyasu SUZAKI wrote:
> I've gotten an e-mail from Dr. Harkes...
I'm not a Dr. yet ;) I do have my masters degree, but in practice don't
tend to stick any titles around my name.
> I could not understand how to mount (export) directory. I think I
> didn't understand the relation of volume and mounted directory.
> Please tell me. I did as follows on the server machine. Was it wrong?
>
> <root> createvol_rep coda:root E0000100 /vicepa
> <root> cfs mkm /coda/root coda:root
The root volume is not mounted anywhere, it's name is just written down
in /vice/db/ROOTVOLUME. When a client starts it calls a very simple
GetRootVolumeName rpc, which returns the contents of that file.
At that point, the client can fetch the root-directory of the
root-volume and mounts that over /coda. Other volumes do have
mountpoints, which show up as dangling symlinks when the volume cannot
be found.
So the volumes with these contents:
coda:root
/
/usr/
/usr/someone -> #user:someone
/tmp -> #coda:tmp
user:someone
/
/.bashrc
/
/Mail/
coda:tmp
/
/test
Would expand to the following namespace if ROOTVOLUME contains
'coda:root'
/coda/
usr/
someone/
.bashrc
Mail/
tmp/
test
> After that I have no idea to make relation with volume and mounted
> directory. If there is helpful home page, please tell me.
If you are trying to mount the root volume into the rootvolume, you are
messing with the kernel's `mind'. It does not like hardlinked dirs at
all, and a volume mounted in two places looks exactly like that.
You'd get the following `namespace'.
/coda/root/root/root/root/root/root/root/root/root/...<ad-infinitum>
And every path-component refers to the same object.
Jan