Joerg Schilling wrote:
> Glenn Skinner <glenn.skinner at sun.com> wrote:
>
>   
>> 4. Technical Description:
>>     4.1. Details:
>>
>>        INTRODUCTION
>>     
> ...
>
>   
>>       To distinguish a regular symlink from a reparse point, an
>>       extensible system attribute will be set on the symlink.  This
>>       system attribute is only one bit which indicates whether or
>>       not a symlink contains reparse data.
>>     
>
> How exactly will these "reparse points" be distinguished from symlinks?
>   

Precisely as described in the paragraph you quoted.
Otherwise, the assumption was that they would be treated
as any other symlink.

>>       The reparse data will be stored as the link target.  The
>>       reparse data is not in file system path format, which is the
>>       typical format of a link target.  In order to avoid coming up
>>       with a totaly new format for reparse data as the link target
>>       we decided to adopt the format used by magic links in BSD:
>>       (http://www.daemon-systems.org/man/symlink.7.html)
>>        
>>       @{repa...@{service-type1:data} [...@{service-type2:data}]...}
>>        
>>       Where some examples of service-type are:
>>        
>>       #define REPARSE_SVC_SMB        "SMB"
>>       #define REPARSE_SVC_NFS        "NFS"
>>       #define REPARSE_SVC_HSM        "HSM"
>>        
>>       The data for each service will be in string format, which is
>>       expected to be typically a UUID string.
>>
>>       The pattern above starts with "REPARSE" to distinguish it from
>>       a other magic links, such as those supported by BSD.  Note
>>       that this case is not a proposal to support BSD magic links,
>>       the intent is to avoid precluding the future addition of full
>>       BSD magic link support.
>>     
>
> How will you prevent prople from removing these "reparse points" because they
> asume that this are symlinks that point to nowhere?
> Note that the official POSIX method for removing symlinks that do not point
> to a target is:
>
>       find -L . -type l -exec rm {} +
>   

Symlinks containing reparse data can be removed in the same way as
any other symlink.  There are no special rules, conditions or restrictions.

>
>   
>>       The symlink target size should be increased to 16K to
>>       accomodate the maximum size supported for MS-DFS referrals by
>>       Windows.  Applications are expected to query the PATH_MAX and
>>       SYMLINK_MAX values on the local system using
>>       pathconf(2)/fpathconf(2).  The value of SYMLINK_MAX would be
>>       changed to 16K on ZFS.  The value of PATH_MAX will not be
>>       affected.
>>     
>
> Whill SYMLINK_MAX from limits.h be set to 16k?
>   

No.

>              
>   
>>        Operation Flow Example
>>             
>>       Here is a simplified example of operation for a CIFS client
>>       that tries to access a file where the path contains a DFS
>>       link:
>>             
>>       a) Client tries to access \\srv\root\...\link\...\file.txt
>>          where:
>>             'root' is a share (namespace root)
>>             'link' is a reparse point seen as a folder by client
>>     
>
> Is this is a typo and you accidently used '\\' as path name separator instead 
> of the official path name separator '/'?
>   

As described in the example, this is what a _CIFS_ client would send
to a CIFS Server.  CIFS clients are often Windows, which uses '\'.
CIFS Servers handle slash translation such that '\' is not presented to
the local operating system.

>         
>   
>>        NFS REFERRAL IN OTHER UNIXES
>>             
>>       FS referrals have been implemented in other major UNIX
>>       distributions such as Linux, AIX and HP-UX but there is no
>>       unified approach or implementation.
>>
>>       Linux, AIX and HP-UX specify referrals as an NFS export
>>       option.  The option format is basically the same in all three
>>       operating systems (refer=path at host) but the presentation is
>>       somewhat different in each case:
>>
>>       - In Linux a referral is presented as a mount point.
>>       - In HP-UX a referral is a file system partition or logical volume.
>>       - In AIX a special object is used to represent a referral.
>>     
>
> Is this intended to be something like the conditional symbolic links that 
> have 
> been in Apollo Domain system 23 years ago?
>   

I'm not familiar with that proposal.  Can you provide details?

Thanks,

Alan

> J?rg
>
>   

Reply via email to