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 <[email protected]>
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 <[email protected]>
    Autobuild-Date(master): Fri Jun 15 20:24:11 CEST 2012 on sn-devel-104

commit 917612a26fc567323e266762b895e09047cf40aa
Author: Björn Baumbach <[email protected]>
Date:   Fri Jun 15 12:33:32 2012 +0200

    docs-xml: vfs_gpfs: add comment "per share option"
    
    Signed-off-by: Stefan Metzmacher <[email protected]>

commit 3eba94c0f170a998e2c779c03c39e48848c605d4
Author: Björn Baumbach <[email protected]>
Date:   Fri Jun 15 12:33:32 2012 +0200

    docs-xml: vfs_gpfs: fix typo
    
    Signed-off-by: Stefan Metzmacher <[email protected]>

commit 54b6d294eecbcd4b9b9965311a8886d06f4aff05
Author: Björn Baumbach <[email protected]>
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 <[email protected]>

commit 289255ce7379188177eaa5f4f8fa527cb909af24
Author: Björn Baumbach <[email protected]>
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 
<[email protected]>
    
    Pair-Programmed-With: Stefan Metzmacher <[email protected]>

commit 442cb66c16d50e76725799aa74a8877207de88ec
Author: Volker Lendecke <[email protected]>
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 <[email protected]>

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

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

Reply via email to