<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE refentry PUBLIC "-//Samba-Team//DTD DocBook V4.2-Based Variant V1.0//EN" "http://www.samba.org/samba/DTD/samba-doc">
<refentry id="vfs_streams_xattr.8">

<refmeta>
	<refentrytitle>vfs_streams_xattr</refentrytitle>
	<manvolnum>8</manvolnum>
	<refmiscinfo class="source">Samba</refmiscinfo>
	<refmiscinfo class="manual">System Administration tools</refmiscinfo>
	<refmiscinfo class="version">&doc.version;</refmiscinfo>
</refmeta>


<refnamediv>
	<refname>vfs_streams_xattr</refname>
	<refpurpose>Store alternate data streams in posix xattrs</refpurpose>
</refnamediv>

<refsynopsisdiv>
	<cmdsynopsis>
		<command>vfs objects = streams_xattr</command>
	</cmdsynopsis>
</refsynopsisdiv>

<refsect1>
	<title>DESCRIPTION</title>

	<para>This VFS module is part of the
	<citerefentry><refentrytitle>samba</refentrytitle>
	<manvolnum>7</manvolnum></citerefentry> suite.</para>

	<para>The <command>vfs_streams_xattr</command> enables storing of NTFS
	alternate data streams in the file system. As a normal posix file
	system does not support the concept of multiple data streams per file,
	the streams_xattr module stores the data in posix extended attributes
	(xattrs). The name of these attributes by default is
	user.DosStream."ADS-NAME". The prefix "user.DosStream." can be changed
	with the module option <command>streams_xattr:prefix</command>, but be
	aware that this will also expose those ADS over the SMB extended
	attributes interface.</para>

	<para>The file system that is shared with this module enabled must
	support xattrs.</para>

	<para>Please note that most file systems have severe limitations on
	the size of xattrs. So this module might work for applications like IE
	that stores small zone information in streams but will fail for
	applications that store serious amounts of data in ADSs.</para>
</refsect1>

<refsect1>
	<title>OPTIONS</title>

	<variablelist>

	  <varlistentry>
	    <term>streams_xattr:prefix = STRING</term>
	    <listitem>
	      <para>Name prefix used when storing an ADS in an xattr, defaults to
	      <command>user.DosStream.</command>. Changing this will also
	      expose ADS over the SMB extended attributes interface.</para>
	    </listitem>
	  </varlistentry>

	  <varlistentry>
	    <term>streams_xattr:store_stream_type = [yes|no]</term>
	    <listitem>
	      <para>Whether the xattr names for Alternate Data Streams of type
	      "$DATA" are suffixed by the stream type string ":$DATA".
	      The default is <command>yes</command>.</para>
	    </listitem>
	  </varlistentry>

	  <varlistentry>
	    <term>streams_xattr:max xattrs per stream = NUM</term>
	    <listitem>
	      <para>On file systems where the size of a single xattr
	      is more limited than the overall size of xattrs per
	      inode, setting this parameter to a number between 2 and
	      16 will allow smbd to store larger streams than what
	      fits into a single xattr. For example Linux has a limit
	      of 64kB per xattr, but XFS can store more than that per
	      inode.</para>
	      <para>The size of a single xattr is limited by the
	      smb.conf parameter <command>smbd max xattr
	      size</command></para>
	      <para>This is limited to 16 xattrs per alternate data
	      stream.</para>
	      <para>The default value is <command>1</command>,
	      compatible to the default behaviour before this feature
	      was introduced.</para>
	    </listitem>
	  </varlistentry>

	  <varlistentry>
	    <term>streams_xattr:ext_prefix = STRING</term>
	    <listitem>
	      <para>Name prefix used when storing overflow xattrs of a
	      stream. It defaults to
	      <command>streams_xattr:prefix</command> with the string
	      "Ext" appended. If
	      <command>streams_xattr:prefix</command> ends in a ".",
	      "Ext" is inserted before the ".".</para>
	      <para>The overflow xattrs will be named according to a
	      pattern following "user.DosStreamExt.0.ADS-NAME".</para>
	    </listitem>
	  </varlistentry>

	</variablelist>

</refsect1>

<refsect1>
	<title>EXAMPLES</title>

<programlisting>
        <smbconfsection name="[share]"/>
	<smbconfoption name="vfs objects">streams_xattr</smbconfoption>
</programlisting>

</refsect1>

<refsect1>
	<title>AUTHOR</title>

	<para>The original Samba software and related utilities
	were created by Andrew Tridgell. Samba is now developed
	by the Samba Team as an Open Source project similar
	to the way the Linux kernel is developed.</para>

</refsect1>

</refentry>
