[SCM] Samba Shared Repository - branch master updated

Christian Ambach ambi at samba.org
Wed Jul 18 09:46:01 MDT 2012


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 <alexander.werth at de.ibm.com>
Date:   Wed Apr 25 15:10:54 2012 +0200

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

commit 9dd0510c20d6844148eafd7d4494c80045d217c9
Author: Christian Ambach <ambi at samba.org>
Date:   Mon Jul 16 17:09:24 2012 +0200

    docs-xml: document smbstatus --notify

commit 35a4a57367a7e53517c569b70ae28d3e59f28ee1
Author: Christian Ambach <ambi at samba.org>
Date:   Mon Jul 16 17:06:11 2012 +0200

    docs-xml: document smbstatus --fast

commit a01a93a1f1dd88d733d30a78f502b72f2ac4ce5b
Author: Christian Ambach <ambi at samba.org>
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 <ambi at samba.org>
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 <ambi at samba.org>
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 <ambi at samba.org>
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 <configuration file></arg>
 		<arg choice="opt">-u <username></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


More information about the samba-cvs mailing list