[SCM] Samba Shared Repository - branch master updated

Stefan Metzmacher metze at samba.org
Fri Jun 15 12:25:04 MDT 2012


The branch, master has been updated
       via  6440720 selftest/flapping: mark samba4.nss.test using winbind(s3dc) as flakey
       via  917612a docs-xml: vfs_gpfs: add comment "per share option"
       via  3eba94c docs-xml: vfs_gpfs: fix typo
       via  54b6d29 docs-xml: add gpfs:acl option to vfs_gpfs man page
       via  289255c s3:vfs_gpfs: add "gpfs:acl" option
       via  442cb66 dbwrap: Remove an unnecessary ZERO_STRUCT
      from  3c94ba5 s3-winbindd: fix the build of idmap_ad modules.

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


- Log -----------------------------------------------------------------
commit 6440720de3123c17baa99b31a3a72f5dba938873
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Jun 15 18:30:43 2012 +0200

    selftest/flapping: mark samba4.nss.test using winbind(s3dc) as flakey
    
    I saw this at least 10 times in the last weeks.
    
    [1425/1517 in 1h12m22s] samba4.nss.test using winbind(s3dc)
    UNEXPECTED(failure): samba4.nss.test using winbind(s3dc).run nsstest(s3dc)
    REASON: _StringException: _StringException: ERROR setpwent: NSS_STATUS=-1  1 (nss_errno=0)
    ERROR getpwent: NSS_STATUS=-1  1 (nss_errno=0)
    ERROR endpwent: NSS_STATUS=-1  1 (nss_errno=0)
    ERROR setgrent: NSS_STATUS=-1  1 (nss_errno=0)
    ERROR getgrent: NSS_STATUS=-1  1 (nss_errno=0)
    ERROR endgrent: NSS_STATUS=-1  1 (nss_errno=0)
    ERROR Non existent user gave error -1
    ERROR Non existent uid gave error -1
    ERROR Non existent group gave error -1
    ERROR Non existent gid gave error -1
    total_errors=10
    
    FAILED (1 failures, 0 errors and 0 unexpected successes in 0 testsuites)
    
    metze
    
    Autobuild-User(master): Stefan Metzmacher <metze at samba.org>
    Autobuild-Date(master): Fri Jun 15 20:24:11 CEST 2012 on sn-devel-104

commit 917612a26fc567323e266762b895e09047cf40aa
Author: Björn Baumbach <bb at sernet.de>
Date:   Fri Jun 15 12:33:32 2012 +0200

    docs-xml: vfs_gpfs: add comment "per share option"
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 3eba94c0f170a998e2c779c03c39e48848c605d4
Author: Björn Baumbach <bb at sernet.de>
Date:   Fri Jun 15 12:33:32 2012 +0200

    docs-xml: vfs_gpfs: fix typo
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 54b6d294eecbcd4b9b9965311a8886d06f4aff05
Author: Björn Baumbach <bb at sernet.de>
Date:   Fri Jun 15 12:33:32 2012 +0200

    docs-xml: add gpfs:acl option to vfs_gpfs man page
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

commit 289255ce7379188177eaa5f4f8fa527cb909af24
Author: Björn Baumbach <bb at sernet.de>
Date:   Thu Jun 14 14:15:44 2012 +0200

    s3:vfs_gpfs: add "gpfs:acl" option
    
    With "gpfs:acl=no" you can pass the acl calls to the next SMB_VFS module.
    
    Based on a patch from Hans-Dieter Schuster <hans-dieter.schuster at ts.fujitsu.com>
    
    Pair-Programmed-With: Stefan Metzmacher <metze at samba.org>

commit 442cb66c16d50e76725799aa74a8877207de88ec
Author: Volker Lendecke <vl at samba.org>
Date:   Tue Jun 5 11:28:44 2012 +0200

    dbwrap: Remove an unnecessary ZERO_STRUCT
    
    We assign the only struct member one line down
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>

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

Summary of changes:
 docs-xml/manpages-3/vfs_gpfs.8.xml |   24 ++++++++++-
 lib/dbwrap/dbwrap_rbt.c            |    1 -
 selftest/flapping                  |    1 +
 source3/modules/vfs_gpfs.c         |   81 ++++++++++++++++++++++++++++++++++++
 4 files changed, 105 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/docs-xml/manpages-3/vfs_gpfs.8.xml b/docs-xml/manpages-3/vfs_gpfs.8.xml
index 3635143..526d86d 100644
--- a/docs-xml/manpages-3/vfs_gpfs.8.xml
+++ b/docs-xml/manpages-3/vfs_gpfs.8.xml
@@ -50,6 +50,8 @@
 
 	<para>This module is stackable.</para>
 
+	<para>Since Samba 4.0 all options are per share options.</para>
+
 </refsect1>
 
 
@@ -174,7 +176,7 @@
 		<listitem>
 		<para>
 		GPFS ACLs doesn't know about the 'APPEND' right.
-		This optionen lets Samba map the 'APPEND' right to 'WRITE'.
+		This option lets Samba map the 'APPEND' right to 'WRITE'.
 		</para>
 
 		<itemizedlist>
@@ -190,6 +192,26 @@
 		</varlistentry>
 		<varlistentry>
 
+		<term>gpfs:acl = [ yes | no ]</term>
+		<listitem>
+		<para>
+		This option lets Samba use or ignore GPFS ACLs.
+		</para>
+
+		<itemizedlist>
+		<listitem><para>
+		<command>yes(default)</command> - use GPFS ACLs.
+		</para></listitem>
+		<listitem><para>
+		<command>no</command> - do not use GPFS ACLs and pass everything
+		to the next SMB_VFS module.
+		</para></listitem>
+		</itemizedlist>
+		</listitem>
+
+		</varlistentry>
+		<varlistentry>
+
 		<term>gpfs:refuse_dacl_protected = [ yes | no ]</term>
 		<listitem>
 		<para>
diff --git a/lib/dbwrap/dbwrap_rbt.c b/lib/dbwrap/dbwrap_rbt.c
index 3dca3ba..d512eac 100644
--- a/lib/dbwrap/dbwrap_rbt.c
+++ b/lib/dbwrap/dbwrap_rbt.c
@@ -382,7 +382,6 @@ static int db_rbt_traverse_internal(struct db_context *db,
 		return ret;
 	}
 
-	ZERO_STRUCT(rec_priv);
 	rec_priv.node = db_rbt2node(n);
 	/* n might be altered by the callback function */
 	n = NULL;
diff --git a/selftest/flapping b/selftest/flapping
index 7fd2cae..d8e8ba8 100644
--- a/selftest/flapping
+++ b/selftest/flapping
@@ -23,3 +23,4 @@
 ^samba3.raw.acls.inheritance\(plugin_s4_dc\) # Seems to flap - succeeds on sn-devel, fails on Fedora 16
 ^samba3.raw.samba3checkfsp.samba3checkfsp\(plugin_s4_dc\) # Seems to flap - succeeds on sn-devel, fails on Fedora 16
 ^samba3.raw.samba3closeerr.samba3closeerr\(plugin_s4_dc\) # Seems to flap - succeeds on sn-devel, fails on Fedora 16
+^samba4.nss.test.*using.*winbind\(s3dc\).run.*nsstest # fails sometimes on sn-devel
diff --git a/source3/modules/vfs_gpfs.c b/source3/modules/vfs_gpfs.c
index 4b0f9eb..d4009c4 100644
--- a/source3/modules/vfs_gpfs.c
+++ b/source3/modules/vfs_gpfs.c
@@ -45,6 +45,7 @@ struct gpfs_config_data {
 	bool getrealfilename;
 	bool dfreequota;
 	bool prealloc;
+	bool acl;
 };
 
 
@@ -350,8 +351,18 @@ static NTSTATUS gpfsacl_fget_nt_acl(vfs_handle_struct *handle,
 {
 	SMB4ACL_T *pacl = NULL;
 	int	result;
+	struct gpfs_config_data *config;
 
 	*ppdesc = NULL;
+
+	SMB_VFS_HANDLE_GET_DATA(handle, config,
+				struct gpfs_config_data,
+				return NT_STATUS_INTERNAL_ERROR);
+
+	if (!config->acl) {
+		return SMB_VFS_NEXT_FGET_NT_ACL(handle, fsp, security_info, ppdesc);
+	}
+
 	result = gpfs_get_nfs4_acl(fsp->fsp_name->base_name, &pacl);
 
 	if (result == 0)
@@ -372,8 +383,18 @@ static NTSTATUS gpfsacl_get_nt_acl(vfs_handle_struct *handle,
 {
 	SMB4ACL_T *pacl = NULL;
 	int	result;
+	struct gpfs_config_data *config;
 
 	*ppdesc = NULL;
+
+	SMB_VFS_HANDLE_GET_DATA(handle, config,
+				struct gpfs_config_data,
+				return NT_STATUS_INTERNAL_ERROR);
+
+	if (!config->acl) {
+		return SMB_VFS_NEXT_GET_NT_ACL(handle, name, security_info, ppdesc);
+	}
+
 	result = gpfs_get_nfs4_acl(name, &pacl);
 
 	if (result == 0)
@@ -514,6 +535,16 @@ static NTSTATUS gpfsacl_set_nt_acl_internal(files_struct *fsp, uint32 security_i
 
 static NTSTATUS gpfsacl_fset_nt_acl(vfs_handle_struct *handle, files_struct *fsp, uint32 security_info_sent, const struct security_descriptor *psd)
 {
+	struct gpfs_config_data *config;
+
+	SMB_VFS_HANDLE_GET_DATA(handle, config,
+				struct gpfs_config_data,
+				return NT_STATUS_INTERNAL_ERROR);
+
+	if (!config->acl) {
+		return SMB_VFS_NEXT_FSET_NT_ACL(handle, fsp, security_info_sent, psd);
+	}
+
 	return gpfsacl_set_nt_acl_internal(fsp, security_info_sent, psd);
 }
 
@@ -627,6 +658,15 @@ static SMB_ACL_T gpfsacl_sys_acl_get_file(vfs_handle_struct *handle,
 					  SMB_ACL_TYPE_T type)
 {
 	gpfs_aclType_t gpfs_type;
+	struct gpfs_config_data *config;
+
+	SMB_VFS_HANDLE_GET_DATA(handle, config,
+				struct gpfs_config_data,
+				return NULL);
+
+	if (!config->acl) {
+		return SMB_VFS_NEXT_SYS_ACL_GET_FILE(handle, path_p, type);
+	}
 
 	switch(type) {
 	case SMB_ACL_TYPE_ACCESS:
@@ -646,6 +686,16 @@ static SMB_ACL_T gpfsacl_sys_acl_get_file(vfs_handle_struct *handle,
 static SMB_ACL_T gpfsacl_sys_acl_get_fd(vfs_handle_struct *handle,
 					files_struct *fsp)
 {
+	struct gpfs_config_data *config;
+
+	SMB_VFS_HANDLE_GET_DATA(handle, config,
+				struct gpfs_config_data,
+				return NULL);
+
+	if (!config->acl) {
+		return SMB_VFS_NEXT_SYS_ACL_GET_FD(handle, fsp);
+	}
+
 	return gpfsacl_get_posix_acl(fsp->fsp_name->base_name,
 				     GPFS_ACL_TYPE_ACCESS);
 }
@@ -744,6 +794,15 @@ static int gpfsacl_sys_acl_set_file(vfs_handle_struct *handle,
 {
 	struct gpfs_acl *gpfs_acl;
 	int result;
+	struct gpfs_config_data *config;
+
+	SMB_VFS_HANDLE_GET_DATA(handle, config,
+				struct gpfs_config_data,
+				return -1);
+
+	if (!config->acl) {
+		return SMB_VFS_NEXT_SYS_ACL_SET_FILE(handle, name, type, theacl);
+	}
 
 	gpfs_acl = smb2gpfs_acl(theacl, type);
 	if (gpfs_acl == NULL) {
@@ -760,6 +819,16 @@ static int gpfsacl_sys_acl_set_fd(vfs_handle_struct *handle,
 				  files_struct *fsp,
 				  SMB_ACL_T theacl)
 {
+	struct gpfs_config_data *config;
+
+	SMB_VFS_HANDLE_GET_DATA(handle, config,
+				struct gpfs_config_data,
+				return -1);
+
+	if (!config->acl) {
+		return SMB_VFS_NEXT_SYS_ACL_SET_FD(handle, fsp, theacl);
+	}
+
 	return gpfsacl_sys_acl_set_file(handle, fsp->fsp_name->base_name,
 					SMB_ACL_TYPE_ACCESS, theacl);
 }
@@ -767,6 +836,16 @@ static int gpfsacl_sys_acl_set_fd(vfs_handle_struct *handle,
 static int gpfsacl_sys_acl_delete_def_file(vfs_handle_struct *handle,
 					   const char *path)
 {
+	struct gpfs_config_data *config;
+
+	SMB_VFS_HANDLE_GET_DATA(handle, config,
+				struct gpfs_config_data,
+				return -1);
+
+	if (!config->acl) {
+		return SMB_VFS_NEXT_SYS_ACL_DELETE_DEF_FILE(handle, path);
+	}
+
 	errno = ENOTSUP;
 	return -1;
 }
@@ -1425,6 +1504,8 @@ static int vfs_gpfs_connect(struct vfs_handle_struct *handle,
 	config->prealloc = lp_parm_bool(SNUM(handle->conn), "gpfs",
 				   "prealloc", true);
 
+	config->acl = lp_parm_bool(SNUM(handle->conn), "gpfs", "acl", true);
+
 	SMB_VFS_HANDLE_SET_DATA(handle, config,
 				NULL, struct gpfs_config_data,
 				return -1);


-- 
Samba Shared Repository


More information about the samba-cvs mailing list