The branch, master has been updated
       via  24f7085 s3:Really ignore unknown special ids in NFSv4 ACLs.
       via  9dd0510 docs-xml: document smbstatus --notify
       via  35a4a57 docs-xml: document smbstatus --fast
       via  a01a93a s3:smbstatus add --fast option
       via  07412b5 s3:smbstatus don't check if process exists twice
       via  36432621 s3:smbstatus rename a function to make its purpose more 
clear
       via  31f0d30 s3:smbstatus fix a compiler warning
      from  d0d05f8 s4-lib/tls: Try socket_send() multiple times to send 
partial packets

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


- Log -----------------------------------------------------------------
commit 24f7085e4ff3523cad4594e554386f8a332523f3
Author: Alexander Werth <[email protected]>
Date:   Wed Apr 25 15:10:54 2012 +0200

    s3:Really ignore unknown special ids in NFSv4 ACLs.
    
    Signed-off-by: Christian Ambach <[email protected]>
    
    Autobuild-User(master): Christian Ambach <[email protected]>
    Autobuild-Date(master): Wed Jul 18 17:45:05 CEST 2012 on sn-devel-104

commit 9dd0510c20d6844148eafd7d4494c80045d217c9
Author: Christian Ambach <[email protected]>
Date:   Mon Jul 16 17:09:24 2012 +0200

    docs-xml: document smbstatus --notify

commit 35a4a57367a7e53517c569b70ae28d3e59f28ee1
Author: Christian Ambach <[email protected]>
Date:   Mon Jul 16 17:06:11 2012 +0200

    docs-xml: document smbstatus --fast

commit a01a93a1f1dd88d733d30a78f502b72f2ac4ce5b
Author: Christian Ambach <[email protected]>
Date:   Fri Jul 13 17:24:02 2012 +0200

    s3:smbstatus add --fast option
    
    this option skips all checks if the process for the record is still there
    using it gives a huge performance benefit on busy systems and clusters while
    it might display stale data if a smbd crashed

commit 07412b56bd3b93cf0d242f5692ee31ee5f0901b5
Author: Christian Ambach <[email protected]>
Date:   Fri Jul 13 17:10:05 2012 +0200

    s3:smbstatus don't check if process exists twice
    
    is_valid_share_mode_entry() already calls serverid_exists which calls 
process_exists()

commit 364326212646047af8870ac78bd734449cadee89
Author: Christian Ambach <[email protected]>
Date:   Fri Jul 13 17:14:09 2012 +0200

    s3:smbstatus rename a function to make its purpose more clear
    
    traverse_fn1 does not really intuitively make clear that it is used to 
traverse connections

commit 31f0d304f178620f3928b7642b571ee27c37de85
Author: Christian Ambach <[email protected]>
Date:   Fri Jul 13 17:32:19 2012 +0200

    s3:smbstatus fix a compiler warning
    
    about comparison of signed with unsigned

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

Summary of changes:
 docs-xml/manpages-3/smbstatus.1.xml |   18 ++++++++++++++++++
 source3/modules/nfs4_acls.c         |    1 +
 source3/utils/status.c              |   29 ++++++++++++++++-------------
 3 files changed, 35 insertions(+), 13 deletions(-)


Changeset truncated at 500 lines:

diff --git a/docs-xml/manpages-3/smbstatus.1.xml 
b/docs-xml/manpages-3/smbstatus.1.xml
index 150e3d0..e3bc251 100644
--- a/docs-xml/manpages-3/smbstatus.1.xml
+++ b/docs-xml/manpages-3/smbstatus.1.xml
@@ -27,6 +27,8 @@
                <arg choice="opt">-B</arg>
                <arg choice="opt">-p</arg>
                <arg choice="opt">-S</arg>
+               <arg choice="opt">-N</arg>
+               <arg choice="opt">-f</arg>
                <arg choice="opt">-s &lt;configuration file&gt;</arg>
                <arg choice="opt">-u &lt;username&gt;</arg>
        </cmdsynopsis>
@@ -95,6 +97,22 @@
                </listitem>
                </varlistentry>
 
+               <varlistentry>
+               <term>-N|--notify</term>
+               <listitem><para>causes smbstatus to display registered file
+               notifications</para>
+               </listitem>
+               </varlistentry>
+
+               <varlistentry>
+               <term>-f|--fast</term>
+               <listitem><para>causes smbstatus to not check if the status data
+               is valid by checking if the processes that the status data 
refer to all still
+               exist. This speeds up execution on busy systems and clusters but
+               might display stale data of processes that died without 
cleaning up properly.</para>
+               </listitem>
+               </varlistentry>
+
                &stdarg.help;
 
                <varlistentry>
diff --git a/source3/modules/nfs4_acls.c b/source3/modules/nfs4_acls.c
index bd3c7fa..bcc7937 100644
--- a/source3/modules/nfs4_acls.c
+++ b/source3/modules/nfs4_acls.c
@@ -317,6 +317,7 @@ static bool smbacl4_nfs42win(TALLOC_CTX *mem_ctx, SMB4ACL_T 
*theacl, /* in */
                        default:
                                DEBUG(8, ("invalid special who id %d "
                                        "ignored\n", ace->who.special_id));
+                               continue;
                        }
                } else {
                        if (ace->aceFlags & SMB_ACE4_IDENTIFIER_GROUP) {
diff --git a/source3/utils/status.c b/source3/utils/status.c
index 3d16f8e..0cb46a5 100644
--- a/source3/utils/status.c
+++ b/source3/utils/status.c
@@ -56,6 +56,7 @@ static bool locks_only;            /* Added by RJS */
 static bool processes_only;
 static bool show_brl;
 static bool numeric_only;
+static bool do_checks = true;
 
 const char *username = NULL;
 
@@ -120,11 +121,7 @@ static void print_share_mode(const struct share_mode_entry 
*e,
 {
        static int count;
 
-       if (!is_valid_share_mode_entry(e)) {
-               return;
-       }
-
-       if (!process_exists(e->pid)) {
+       if (do_checks && !is_valid_share_mode_entry(e)) {
                return;
        }
 
@@ -191,7 +188,7 @@ static void print_brl(struct file_id id,
                        void *private_data)
 {
        static int count;
-       int i;
+       unsigned int i;
        static const struct {
                enum brl_type lock_type;
                const char *desc;
@@ -247,14 +244,15 @@ static void print_brl(struct file_id id,
        TALLOC_FREE(share_mode);
 }
 
-static int traverse_fn1(const struct connections_key *key,
-                       const struct connections_data *crec,
-                       void *state)
+static int traverse_connections(const struct connections_key *key,
+                               const struct connections_data *crec,
+                               void *state)
 {
        if (crec->cnum == TID_FIELD_INVALID)
                return 0;
 
-       if (!process_exists(crec->pid) || !Ucrit_checkUid(crec->uid)) {
+       if (do_checks &&
+           (!process_exists(crec->pid) || !Ucrit_checkUid(crec->uid))) {
                return 0;
        }
 
@@ -271,8 +269,9 @@ static int traverse_sessionid(const char *key, struct 
sessionid *session,
 {
        fstring uid_str, gid_str;
 
-       if (!process_exists(session->pid)
-           || !Ucrit_checkUid(session->uid)) {
+       if (do_checks &&
+           (!process_exists(session->pid) ||
+            !Ucrit_checkUid(session->uid))) {
                return 0;
        }
 
@@ -335,6 +334,7 @@ static void print_notify_recs(const char *path,
                {"profile-rates", 'R', POPT_ARG_NONE, NULL, 'R', "Show call 
rates" },
                {"byterange",   'B', POPT_ARG_NONE,     NULL, 'B', "Include 
byte range locks"},
                {"numeric",     'n', POPT_ARG_NONE,     NULL, 'n', "Numeric 
uid/gid"},
+               {"fast",        'f', POPT_ARG_NONE,     NULL, 'f', "Skip checks 
if processes still exist"},
                POPT_COMMON_SAMBA
                POPT_TABLEEND
        };
@@ -389,6 +389,9 @@ static void print_notify_recs(const char *path,
                case 'n':
                        numeric_only = true;
                        break;
+               case 'f':
+                       do_checks = false;
+                       break;
                }
        }
 
@@ -469,7 +472,7 @@ static void print_notify_recs(const char *path,
                d_printf("\nService      pid     machine       Connected at\n");
                
d_printf("-------------------------------------------------------\n");
 
-               connections_forall_read(traverse_fn1, NULL);
+               connections_forall_read(traverse_connections, NULL);
 
                d_printf("\n");
 


-- 
Samba Shared Repository

Reply via email to