Coda File System

the truth(?) about volume names role (was: Coda development roadmap)

From: <u-codalist-z149_at_aetey.se>
Date: Sat, 2 Aug 2014 19:32:54 +0200
On Sat, Aug 02, 2014 at 12:16:50AM +0200, u-codalist-z149_at_aetey.se wrote:
> > > - volume names to be treated as comments, meant for humans only,
> > >   dropping the corresponding indirection layer and the related code
> > 
> On Fri, Aug 01, 2014 at 01:54:06PM -0400, Jan Harkes wrote:
> > The corresponding indirection layer is only used for humans. Internally
> > Coda clients and servers use the volume id, the only places the name is
> > used is for cfs makemount and when volume ids are mapped back to names
> > when we display updates in f.i. codacon or cfs listvol.
> 
> Oh, thanks! A confusion of mine has been cured.
> I believed mountpoints contained volume names.

I rechecked.
With all due respect now I no longer can agree with your statement above.

Looking at vproc_pioctl.cc:

 ...
                        /* A mount-link is virtually identical to a symlink.
                         * In fact Coda stores mount-links as symlinks on the
                         * server. The only visible differences are that the
                         * mount-link has a Unix modemask of 0644, while a
                         * symlink has 0777. A mountpoint's contents always
                         * start with '#', '@' (or '%'?)
 ...
                         * Regular mount-links start with a '#', optionally
 ==============>         * followed by a volume name (current path is used in
                         * case the volume name is not specified), optionally
 ...
                         * Internally, Venus creates mount-links starting with
                         * '@', followed by a Fid (volume.vnode.unique),
                         * optionally followed by '@' and a realm/domain name.
                         * These are used for conflicts and during repair to
                         * mount a specific object in the fake repair volume.
                         *
                         * -JH
 ...

So your statement reflects the latter kind of mountpoints but not
the regular ones.

I also clearly see the code in venusvol.cc which at least while crossing
realm boundaries actually does lookup volume names. This means they
do have semantics for the clients, not only for humans.
This is what I want to change.

I see this dialogue as a very clear illustration of how easy it is
to be confused about the semantics of the different numerous kinds
of data being passed around in Coda. Let us make this amount smaller.

Best regards,
Rune
Received on 2014-08-02 13:34:13