Coda File System

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

From: Jan Harkes <jaharkes_at_cs.cmu.edu>
Date: Sat, 02 Aug 2014 13:39:17 -0400
If you'd looked further then you might have noticed that the server looks up first by name and then does a strtol or something and checks for the volume by number.

Jan

On August 2, 2014 1:32:54 PM EDT, u-codalist-z149_at_aetey.se wrote:
>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:39:32