Don't overwrite creation time if was previously set by make_create_timespec

smb2_create calls dos_mode() after calling SMB_VFS_CREATE_FILE(), as a
result the creation time as set by make_create_timespec() is always
overwritten.

Add a check to dos_mode() that tests for st_ex_calculated_birthtime ==
true and only then update the creation time with the value from the
DOS attribute xattr.

Signed-off-by: Ralph Boehme <rb@sernet.de>
New VFS module vfs_apple

This module provides enhanced compatibility with Apple SMB clients and
interoperability with a Netatalk 3 AFP fileserver.

The module intercepts the OS X special streams "AFP_AfpInfo" and
"AFP_Resource" and handles them in a special way. All other named
streams are deferred to vfs_streams_xattr.

The OS X client maps all NTFS illegal characters to the Unicode
private range. This module optionally stores the charcters using their
native ASCII encoding.

Finally, open modes are optionally checked against Netatalk AFP share
modes.

The "AFP_AfpInfo" named stream is a binary blob containing OS X
extended metadata for files and directories. This module optionally
reads and stores this metadata in a way compatible with Netatalk 3
which stores the metadata in an EA "org.netatalk.metadata". Cf
source3/include/MacExtensions.h for a description of the binary blobs
content.

The "AFP_Resource" named stream may be arbitrarily large, thus it
can't be stored in an EA on most filesystem. ZFS on Solaris is an
exception to the rule, because it there EAs can be of any size and EAs
are first-class filesystem objects that can be used with normal file
syscalls like open(), read(), write(), fcntl() asf. This module stores
the AFP_Resource stream in an AppleDouble file, prepending "._" to the
filename. On Solaris and ZFS the stream is optionally stored in an EA
"org.netatalk.ressource".

Signed-off-by: Ralph Boehme <rb@sernet.de>
Robust error code checking and return value
Factor out update_btime
Check offset
Update TODO
Fix conversion specifier
apple_unlink: remove meta xattr if requested
apple_connect: don't fall off the cliff
apple_pwrite: fix updating rfork size info
apple_connect: add catia character mapping for 0x0d