Make us follow the newly documented pathname processing rules:
authorJeremy Allison <jra@samba.org>
Mon, 28 Nov 2005 20:15:21 +0000 (20:15 +0000)
committerGerald W. Carter <jerry@samba.org>
Wed, 23 Apr 2008 13:47:12 +0000 (08:47 -0500)
"As a special case for directories with large numbers of files, if the
case options are set as follows, "case sensitive = yes", "case
preserve = no", "short preserve case = no" then the "default case"
option will be applied and will modify all filenames sent from the
client
when accessing this share."
This is needed as fixing the case preserve rules to only apply to
new filenames broke the large directory fix. Glad we caught this
before release. Thanks to jht for this one.
Jeremy.
(This used to be commit aa5e011dfe015650ce1a0e45912c9c3f0f04c6a2)

docs/manpages-3/smb.conf.5.xml

index 833296d2d96888dd154214b59f6d52aa8582b0fd..d4fc5cc5d71e3a3f6ef87b7446166407b387c0d9 100644 (file)
@@ -520,14 +520,22 @@ alias|alias|alias|alias...
                <varlistentry>
                <term>default case = upper/lower</term>
                <listitem><para>
-               controls what the default case is for new filenames. Default <emphasis>lower</emphasis>.
+               controls what the default case is for new filenames (ie. files that don't currently exist
+               in the filesystem). Default <emphasis>lower</emphasis>.
+               IMPORTANT NOTE ! This option will be used to modify the case of <emphasis>all</emphasis>
+               incoming client filenames, not just new filenames if the options
+               "case sensitive = yes", "case preserve = no", "short preserve case = no" are set.
+               This change is needed as part of the optimisations
+               for directories containing large numbers of files.
                </para></listitem>
                </varlistentry> 
        
                <varlistentry>
                <term>preserve case = yes/no</term>
                <listitem><para>
-               controls whether new files are created with the case that the client passes, or if they are forced to be the 
+               controls whether new files (ie. files that don't currently exist
+               in the filesystem) are created with the case that the client passes,
+               or if they are forced to be the 
                <literal>default</literal> case. Default <emphasis>yes</emphasis>.
                </para></listitem>
                </varlistentry> 
@@ -535,16 +543,23 @@ alias|alias|alias|alias...
                <varlistentry>
                <term>short preserve case = yes/no</term>
                <listitem><para>
-               controls if new files which conform to 8.3 syntax, that is all in upper case and of suitable length,
-               are created upper case, or if they are forced to be the <literal>default</literal> case. This option can be
-               used with <literal>preserve case = yes</literal> to permit long filenames to retain their case, while short
+               controls if new files (ie. files that don't currently exist
+               in the filesystem) which conform to 8.3 syntax, that is all in
+               upper case and of suitable length, are created upper case, or if
+               they are forced to be the <literal>default</literal> case. This
+               option can be used with <literal>preserve case = yes</literal> to
+               permit long filenames to retain their case, while short
                names are lowercased. Default <emphasis>yes</emphasis>.
                </para></listitem>
                </varlistentry> 
        </variablelist>
        
        <para>
-       By default, Samba 3.0 has the same semantics as a Windows NT server, in that it is case insensitive but case preserving.
+       By default, Samba 3.0 has the same semantics as a Windows NT server, in that it is case insensitive
+       but case preserving. As a special case for directories with large numbers of files, if the case
+       options are set as follows, "case sensitive = yes", "case preserve = no", "short preserve case = no"
+       then the "default case" option will be applied and will modify all filenames sent from the client
+       when accessing this share.
        </para>
        
 </refsect1>