The branch, master has been updated
       via  a8769e6... Second part of bugfix for 6865 - acl_xattr module: Has 
dependency that inherit acls = yes or xattrs are removed. We also need dos 
filemode = true set as well. Jeremy.
      from  8995d3d... Fix bug 6878 - Cannot change ACL's inherit flag. Based 
on a patch submitted by Tsukasa Hamano <[email protected]>, this is a change 
in the POSIX ACL mapping to deal with the lossy mapping for directory ACE 
entries:

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


- Log -----------------------------------------------------------------
commit a8769e667514f83a45ee3e825d21a351987d0210
Author: Jeremy Allison <[email protected]>
Date:   Wed Nov 11 18:35:18 2009 -0800

    Second part of bugfix for 6865 - acl_xattr module: Has dependency that 
inherit acls = yes or xattrs are removed.
    We also need dos filemode = true set as well.
    Jeremy.

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

Summary of changes:
 docs-xml/smbdotconf/misc/dosfilemode.xml |    8 +++++++-
 source3/include/proto.h                  |    1 -
 source3/modules/vfs_acl_tdb.c            |    6 ++++--
 source3/modules/vfs_acl_xattr.c          |    8 ++++++--
 source3/param/loadparm.c                 |   10 ----------
 5 files changed, 17 insertions(+), 16 deletions(-)


Changeset truncated at 500 lines:

diff --git a/docs-xml/smbdotconf/misc/dosfilemode.xml 
b/docs-xml/smbdotconf/misc/dosfilemode.xml
index e67ccd9..cf53192 100644
--- a/docs-xml/smbdotconf/misc/dosfilemode.xml
+++ b/docs-xml/smbdotconf/misc/dosfilemode.xml
@@ -12,7 +12,13 @@
        (including ACL) on it. Note that a user belonging to the group
        owning the file will not be allowed to change permissions if
        the group is only granted read access. Ownership of the
-       file/directory may also be changed.</para>
+       file/directory may also be changed.
+
+       Note that using the VFS modules acl_xattr or acl_tdb which store native
+       Windows as meta-data will automatically turn this option on for any
+       share for which they are loaded, as they require this option to emulate
+       Windows ACLs correctly.
+       </para>
 </description>
 <value type="default">no</value>
 </samba:parameter>
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 0993340..2dc0c83 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -4374,7 +4374,6 @@ void lp_set_posix_default_cifsx_readwrite_locktype(enum 
brl_flavour val);
 int lp_min_receive_file_size(void);
 char* lp_perfcount_module(void);
 void lp_set_passdb_backend(const char *backend);
-bool set_inherit_acls(int i);
 
 /* The following definitions come from param/util.c  */
 
diff --git a/source3/modules/vfs_acl_tdb.c b/source3/modules/vfs_acl_tdb.c
index 3d06e52..db3881e 100644
--- a/source3/modules/vfs_acl_tdb.c
+++ b/source3/modules/vfs_acl_tdb.c
@@ -384,9 +384,11 @@ static int connect_acl_tdb(struct vfs_handle_struct 
*handle,
 
        /* Ensure we have "inherit acls = yes" if we're
         * using this module. */
-       DEBUG(2,("connect_acl_tdb: setting 'inherit acls = true' for service 
%s\n",
+       DEBUG(2,("connect_acl_tdb: setting 'inherit acls = true' "
+               "and 'dos filemode = true' for service %s\n",
                service ));
-       set_inherit_acls(SNUM(handle->conn));
+       lp_do_parameter(SNUM(handle->conn), "inherit acls", "true");
+       lp_do_parameter(SNUM(handle->conn), "dos filemode", "true");
 
        return 0;
 }
diff --git a/source3/modules/vfs_acl_xattr.c b/source3/modules/vfs_acl_xattr.c
index 11ca890..962d1b7 100644
--- a/source3/modules/vfs_acl_xattr.c
+++ b/source3/modules/vfs_acl_xattr.c
@@ -214,9 +214,13 @@ static int connect_acl_xattr(struct vfs_handle_struct 
*handle,
 {
        /* Ensure we have "inherit acls = yes" if we're
         * using this module. */
-       DEBUG(2,("connect_acl_xattr: setting 'inherit acls = true' for service 
%s\n",
+       DEBUG(2,("connect_acl_xattr: setting 'inherit acls = true' "
+               "and 'dos filemode = true' for service %s\n",
                service ));
-       set_inherit_acls(SNUM(handle->conn));
+
+        lp_do_parameter(SNUM(handle->conn), "inherit acls", "true");
+        lp_do_parameter(SNUM(handle->conn), "dos filemode", "true");
+
        return 0;
 }
 
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index 9a0f834..c62deb5 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -9843,13 +9843,3 @@ void lp_set_passdb_backend(const char *backend)
 {
        string_set(&Globals.szPassdbBackend, backend);
 }
-
-bool set_inherit_acls(int i)
-{
-       if (!LP_SNUM_OK(i)) {
-               return false;
-       }
-       ServicePtrs[(i)]->bInheritACLS = true;
-
-       return true;
-}


-- 
Samba Shared Repository

Reply via email to