[SCM] Samba Shared Repository - branch master updated

Jeremy Allison jra at samba.org
Sat Mar 25 03:42:02 UTC 2017


The branch, master has been updated
       via  1b36cda WHATSNEW: Document "strict sync" default change.
       via  ed483d8 s3: smbd: Change "strict sync" paramter from "no" to "yes" for 4.7.0.
      from  a74fef0 Revert "selftest: temporary skip samba.blackbox.pdbtest.s4winbind"

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 1b36cda7cf20746f85b18a52e2e24fbc5ba73535
Author: Jeremy Allison <jra at samba.org>
Date:   Thu Mar 23 09:06:27 2017 -0700

    WHATSNEW: Document "strict sync" default change.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Christof Schmitt <cs at samba.org>
    
    Autobuild-User(master): Jeremy Allison <jra at samba.org>
    Autobuild-Date(master): Sat Mar 25 04:41:19 CET 2017 on sn-devel-144

commit ed483d8e570700a303e11bc03d6250cd0ae4aaed
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Mar 22 19:22:31 2017 -0700

    s3: smbd: Change "strict sync" paramter from "no" to "yes" for 4.7.0.
    
    Document change and modify in loadparm.c.
    Safer default for new installs and vendors.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Christof Schmitt <cs at samba.org>

-----------------------------------------------------------------------

Summary of changes:
 WHATSNEW.txt                              |  6 ++++
 docs-xml/smbdotconf/tuning/strictsync.xml | 48 +++++++++++++++++++------------
 lib/param/loadparm.c                      |  2 ++
 source3/param/loadparm.c                  |  2 +-
 4 files changed, 39 insertions(+), 19 deletions(-)


Changeset truncated at 500 lines:

diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index dd60cd2..cda61ef 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -16,12 +16,18 @@ UPGRADING
 NEW FEATURES/CHANGES
 ====================
 
+The "strict sync" global parameter has been changed from
+a default of "no" to "yes". This means smbd will by default
+obey client requests to synchronize unwritten data in operating
+system buffers safely onto disk. This is a safer default setting
+for modern SMB1/2/3 clients.
 
 smb.conf changes
 ================
 
   Parameter Name                Description             Default
   --------------                -----------             -------
+  strict sync			Default changed		yes
 
 
 KNOWN ISSUES
diff --git a/docs-xml/smbdotconf/tuning/strictsync.xml b/docs-xml/smbdotconf/tuning/strictsync.xml
index 5cfd388..f2e3788 100644
--- a/docs-xml/smbdotconf/tuning/strictsync.xml
+++ b/docs-xml/smbdotconf/tuning/strictsync.xml
@@ -3,26 +3,38 @@
 				 type="boolean"
                  xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
  <description>
-    <para>Many Windows applications (including the Windows 98 explorer
-    shell) seem to confuse flushing buffer contents to disk with doing
-    a sync to disk. Under UNIX, a sync call forces the thread to be
-    suspended until the kernel has ensured that all outstanding data in
-    kernel disk buffers has been safely stored onto stable storage.
-    This is very slow and should only be done rarely. Setting this
-    parameter to <constant>no</constant> (the default) means that
-    <citerefentry><refentrytitle>smbd</refentrytitle>
-    <manvolnum>8</manvolnum></citerefentry> ignores the Windows
-    applications requests for a sync call. There is only a possibility
-    of losing data if the operating system itself that Samba is running
-    on crashes, so there is little danger in this default setting. In
-    addition, this fixes many performance problems that people have
-    reported with the new Windows98 explorer shell file copies.</para>
+    <para>This parameter controls whether Samba honors a request
+    from an SMB client to ensure any outstanding operating system
+    buffer contents held in memory are safely written onto stable
+    storage on disk. If set to <constant>yes</constant>, which is
+    the default, then Windows applications can force the smbd server
+    to synchronize unwritten data onto the disk. If set to
+    <constant>no</constant> then smbd will ignore client
+    requests to synchronize unwritten data onto stable storage on
+    disk.</para>
+
+    <para>In Samba 4.7.0, the default for this parameter changed from
+    <constant>no</constant> to <constant>yes</constant> to better
+    match the expectations of SMB2/3 clients and improve application
+    safety when running against smbd.</para>
+
     <para>The flush request from SMB2/3 clients is handled
-    asynchronously, so for these clients setting the parameter
-    to <constant>yes</constant> does not block the processing of other
-    requests in the smbd process.</para>
+    asynchronously inside smbd, so leaving the parameter as the default
+    value of <constant>yes</constant> does not block the processing of
+    other requests to the smbd process.</para>
+
+    <para>Legacy Windows applications (such as the Windows 98 explorer
+    shell) seemed to confuse writing buffer contents to the operating
+    system with synchronously writing outstanding data onto stable storage
+    on disk. Changing this parameter to <constant>no</constant> means that
+    <citerefentry><refentrytitle>smbd</refentrytitle>
+    <manvolnum>8</manvolnum></citerefentry> will ignore the Windows
+    applications request to synchronize unwritten data onto disk. Only
+    consider changing this if smbd is serving obsolete SMB1 Windows clients
+    prior to Windows XP (Windows 98 and below). There should be no need to
+    change this setting for normal operations.</para>
 </description>
 
 <related>sync always</related>
-<value type="default">no</value>
+<value type="default">yes</value>
 </samba:parameter>
diff --git a/lib/param/loadparm.c b/lib/param/loadparm.c
index 335c54a..cedf8fa 100644
--- a/lib/param/loadparm.c
+++ b/lib/param/loadparm.c
@@ -2832,6 +2832,8 @@ struct loadparm_context *loadparm_init(TALLOC_CTX *mem_ctx)
 
 	lpcfg_do_global_parameter(lp_ctx, "strict locking", "Auto");
 
+	lpcfg_do_global_parameter(lp_ctx, "strict sync", "yes");
+
 	lpcfg_do_global_parameter(lp_ctx, "map readonly", "yes");
 
 	lpcfg_do_global_parameter(lp_ctx, "allow trusted domains", "yes");
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index c65e613..57220a6 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -207,7 +207,7 @@ static struct loadparm_service sDefault =
 	.sync_always = false,
 	.strict_allocate = false,
 	.strict_rename = false,
-	.strict_sync = false,
+	.strict_sync = true,
 	.mangling_char = '~',
 	.copymap = NULL,
 	.delete_readonly = false,


-- 
Samba Shared Repository



More information about the samba-cvs mailing list