VFS to NTFS transition

James Peach jpeach at samba.org
Mon Apr 28 16:35:34 GMT 2008

On Apr 25, 2008, at 10:43 AM, Ralph Böhme wrote:
> Shlomi,
> thank you for you detailed description. Before I reply with a  
> description of what I have in mind regarding netatalk<->samba  
> interop I have some comments and questions:
> Am 24.04.2008 um 15:03 schrieb Shlomi Yaakobovich:
>> In Exanet we use a modified vfs_netatalk object. We call it  
>> vfs_ads. It
>> includes possible some of the enhancements you are referring to.
>> As you might know, the vfs_netatalk code is compatible with the
>> adouble:v1 format. In short, this format saves Macintosh Resource  
>> forks
>> under the .AppleDouble folder. Our older tests using this format were
>> quite ok, we used it for quite some time.
> If I am not totally missing something the code it is also compatible  
> with adouble:v2 format which is what netatalk 2 is actually using to  
> store the Mac metadata as well as some private data: it is  
> compatible because it does nothing more than hide and delete adouble  
> extra files if the corresponding (data fork) file is moved (or  
> deleted) through Samba.
>> However, we wanted to increase interoperability, and we discovered  
>> that
>> Microsoft treats Resource Forks the same way it handles Resource  
>> forks.
>> The first stage was to develop the adouble:ads format, and also  
>> change
>> vfs_netatalk to vfs_ads. The new functionality now saves the  
>> Alternate
>> Data Streams in the same directory as the Macintsh Resource forks.
>> Moreover, all operations by either Mac or Windows clients (e.g.  
>> rename,
>> delete etc.) are performed well on files with whichever attached
>> Resource Fork or Aletrnate Data streams.
>> Later work was designed to allow Windows clients/application actual
>> access to the data inside the resource fork, for example in order to
>> show the icon of the picture. This lead to the development of the
>> adouble:sfm format in netatalk and to the appropriate changes in
>> vfs_ads. Resource Forks are separated into two files in this format:
>> AFP_Resource and AFP_AfpInfo. This has its side effects, but does  
>> allow
>> the required interoperability.
> So on the netatalk side: what is the functional difference between  
> adouble:v2 and your adouble:sfm? Why didn't you just work with  
> adouble:v2?
> Just asking out of curiosity and in order to fully undestand your  
> implementation.
>> We can share the code of course, it is GPL after all !  But the  
>> code has
>> changed quite much from the vfs_netatalk, and does not compile  
>> without
>> our changes to samba (which I am not sure you want). However, it is  
>> in
>> our best interest that our changes will eventually come back to the
>> samba code. I would like to know exactly which changes you have had  
>> in
>> mind, ...
> All operations by either Mac or Windows clients (e.g. rename, delete  
> etc.) shall be performed well on basis of the current netatalk  
> adouble:v2 implementation. Most importantly vfs_netatalk must copy  
> and move adouble:v2 files upon SMB copy/move actions.
> This and any further anhancemnet is done with the following  
> assumptions in mind:
> - primary filing protocol for Macs is AFP -- CIFS for Macs is  
> considered a bad idea in this setup
> - it is unecessary that SMB clients access Mac metadata or ressource  
> forks (as you are doing -- which applications actually make use of  
> that?)

These two assumptions are bogus. The 10.5 smbfs client does natively  
propagate Mac metadata and resource forks across SMB. It provides a  
user experience that is virtually indistinguishable from AFP. If the  
SMB server can't support support these, then the client will fall back  
to using ._ files.

> - Windows alternate data streams are stored wherever the current  
> Samba implementation and configuration likes to store it, thats a  
> totally different mapping
> Regards,
> -Ralph

More information about the samba-technical mailing list