[SCM] Samba Shared Repository - branch master updated

Volker Lendecke vlendec at samba.org
Sat Aug 28 04:29:13 MDT 2010


The branch, master has been updated
       via  0f83aa8 s3: Remove the dependency of g_lock on procid_self
      from  520c5aa s3: Remove smbd_server_conn() from check_unix_security

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


- Log -----------------------------------------------------------------
commit 0f83aa865090bfaf06add6a9e8b7215ab1db7d95
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Jun 27 15:36:38 2010 +0200

    s3: Remove the dependency of g_lock on procid_self
    
    procid_self() references global vars, don't depend on them unnecessarily

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

Summary of changes:
 source3/include/g_lock.h     |    2 +-
 source3/lib/g_lock.c         |   22 +++++++++++++---------
 source3/utils/net_g_lock.c   |    2 +-
 source3/utils/net_registry.c |    2 +-
 4 files changed, 16 insertions(+), 12 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/include/g_lock.h b/source3/include/g_lock.h
index becb71b..4092230 100644
--- a/source3/include/g_lock.h
+++ b/source3/include/g_lock.h
@@ -44,7 +44,7 @@ NTSTATUS g_lock_get(struct g_lock_ctx *ctx, const char *name,
 		struct server_id *pid);
 
 NTSTATUS g_lock_do(const char *name, enum g_lock_type lock_type,
-		   struct timeval timeout,
+		   struct timeval timeout, struct server_id self,
 		   void (*fn)(void *private_data), void *private_data);
 
 int g_lock_locks(struct g_lock_ctx *ctx,
diff --git a/source3/lib/g_lock.c b/source3/lib/g_lock.c
index 49f719b..42bf3b0 100644
--- a/source3/lib/g_lock.c
+++ b/source3/lib/g_lock.c
@@ -206,7 +206,7 @@ again:
 		goto done;
 	}
 
-	self = procid_self();
+	self = messaging_server_id(ctx->msg);
 	our_index = -1;
 
 	for (i=0; i<num_locks; i++) {
@@ -312,8 +312,8 @@ NTSTATUS g_lock_lock(struct g_lock_ctx *ctx, const char *name,
 
 #ifdef CLUSTER_SUPPORT
 	if (lp_clustering()) {
-		status = ctdb_watch_us(
-			messaging_ctdbd_connection(procid_self()));
+		struct server_id my_id = messaging_server_id(ctx->msg);
+		status = ctdb_watch_us(messaging_ctdbd_connection(my_id));
 		if (!NT_STATUS_IS_OK(status)) {
 			DEBUG(10, ("could not register retry with ctdb: %s\n",
 				   nt_errstr(status)));
@@ -388,9 +388,11 @@ NTSTATUS g_lock_lock(struct g_lock_ctx *ctx, const char *name,
 
 #ifdef CLUSTER_SUPPORT
 		if (lp_clustering()) {
+			struct server_id my_id;
 			struct ctdbd_connection *conn;
 
-			conn = messaging_ctdbd_connection(procid_self());
+			my_id = messaging_server_id(ctx->msg);
+			conn = messaging_ctdbd_connection(my_id);
 
 			r_fds = &_r_fds;
 			FD_ZERO(r_fds);
@@ -591,11 +593,12 @@ NTSTATUS g_lock_unlock(struct g_lock_ctx *ctx, const char *name)
 {
 	NTSTATUS status;
 
-	status = g_lock_force_unlock(ctx, name, procid_self());
+	status = g_lock_force_unlock(ctx, name, messaging_server_id(ctx->msg));
 
 #ifdef CLUSTER_SUPPORT
 	if (lp_clustering()) {
-		ctdb_unwatch(messaging_ctdbd_connection(procid_self()));
+		struct server_id my_id = messaging_server_id(ctx->msg);
+		ctdb_unwatch(messaging_ctdbd_connection(my_id));
 	}
 #endif
 	return status;
@@ -708,6 +711,7 @@ NTSTATUS g_lock_get(struct g_lock_ctx *ctx, const char *name,
 static bool g_lock_init_all(TALLOC_CTX *mem_ctx,
 			    struct tevent_context **pev,
 			    struct messaging_context **pmsg,
+			    const struct server_id self,
 			    struct g_lock_ctx **pg_ctx)
 {
 	struct tevent_context *ev = NULL;
@@ -719,7 +723,7 @@ static bool g_lock_init_all(TALLOC_CTX *mem_ctx,
 		d_fprintf(stderr, "ERROR: could not init event context\n");
 		goto fail;
 	}
-	msg = messaging_init(mem_ctx, procid_self(), ev);
+	msg = messaging_init(mem_ctx, self, ev);
 	if (msg == NULL) {
 		d_fprintf(stderr, "ERROR: could not init messaging context\n");
 		goto fail;
@@ -742,7 +746,7 @@ fail:
 }
 
 NTSTATUS g_lock_do(const char *name, enum g_lock_type lock_type,
-		   struct timeval timeout,
+		   struct timeval timeout, const struct server_id self,
 		   void (*fn)(void *private_data), void *private_data)
 {
 	struct tevent_context *ev = NULL;
@@ -750,7 +754,7 @@ NTSTATUS g_lock_do(const char *name, enum g_lock_type lock_type,
 	struct g_lock_ctx *g_ctx = NULL;
 	NTSTATUS status;
 
-	if (!g_lock_init_all(talloc_tos(), &ev, &msg, &g_ctx)) {
+	if (!g_lock_init_all(talloc_tos(), &ev, &msg, self, &g_ctx)) {
 		status = NT_STATUS_ACCESS_DENIED;
 		goto done;
 	}
diff --git a/source3/utils/net_g_lock.c b/source3/utils/net_g_lock.c
index a683b55..937c11c 100644
--- a/source3/utils/net_g_lock.c
+++ b/source3/utils/net_g_lock.c
@@ -90,7 +90,7 @@ static int net_g_lock_do(struct net_context *c, int argc, const char **argv)
 
 	status = g_lock_do(name, G_LOCK_WRITE,
 			   timeval_set(timeout / 1000, timeout % 1000),
-			   net_g_lock_do_fn, &state);
+			   procid_self(), net_g_lock_do_fn, &state);
 	if (!NT_STATUS_IS_OK(status)) {
 		d_fprintf(stderr, "ERROR: g_lock_do failed: %s\n",
 			  nt_errstr(status));
diff --git a/source3/utils/net_registry.c b/source3/utils/net_registry.c
index 4a6af95..f90d054 100644
--- a/source3/utils/net_registry.c
+++ b/source3/utils/net_registry.c
@@ -488,7 +488,7 @@ static int net_registry_increment(struct net_context *c, int argc,
 	}
 
 	status = g_lock_do("registry_increment_lock", G_LOCK_WRITE,
-			   timeval_set(600, 0),
+			   timeval_set(600, 0), procid_self(),
 			   net_registry_increment_fn, &state);
 	if (!NT_STATUS_IS_OK(status)) {
 		d_fprintf(stderr, _("g_lock_do failed: %s\n"),


-- 
Samba Shared Repository


More information about the samba-cvs mailing list