summaryrefslogtreecommitdiffstats
path: root/ctdb/server/ctdb_lock.c
diff options
context:
space:
mode:
authorAmitay Isaacs <amitay@gmail.com>2013-05-08 13:45:55 +1000
committerAmitay Isaacs <amitay@gmail.com>2013-05-24 09:06:40 +1000
commitc8d577eb804ff35cc01a7230237c7215d17616a2 (patch)
tree81a86017e943dfdfe590fd7c5af12c77ef871186 /ctdb/server/ctdb_lock.c
parent1ddc7b0d10d317755f07e4a6a72a50390c2d7c96 (diff)
downloadsamba-c8d577eb804ff35cc01a7230237c7215d17616a2.tar.gz
samba-c8d577eb804ff35cc01a7230237c7215d17616a2.tar.xz
samba-c8d577eb804ff35cc01a7230237c7215d17616a2.zip
locking: Set lock helper path once
Signed-off-by: Amitay Isaacs <amitay@gmail.com> (This used to be ctdb commit 80fbe9364350d42658f7f8af250ac87eb1afbc21)
Diffstat (limited to 'ctdb/server/ctdb_lock.c')
-rw-r--r--ctdb/server/ctdb_lock.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/ctdb/server/ctdb_lock.c b/ctdb/server/ctdb_lock.c
index d2482282aa4..77b4da88857 100644
--- a/ctdb/server/ctdb_lock.c
+++ b/ctdb/server/ctdb_lock.c
@@ -635,9 +635,21 @@ static void ctdb_lock_schedule(struct ctdb_context *ctdb)
int ret;
TALLOC_CTX *tmp_ctx;
const char *helper = BINDIR "/ctdb_lock_helper";
- const char *prog;
+ static const char *prog = NULL;
char **args;
+ if (prog == NULL) {
+ const char *t;
+
+ t = getenv("CTDB_LOCK_HELPER");
+ if (t != NULL) {
+ prog = talloc_strdup(ctdb, t);
+ } else {
+ prog = talloc_strdup(ctdb, helper);
+ }
+ CTDB_NO_MEMORY_VOID(ctdb, prog);
+ }
+
if (ctdb->lock_num_current >= MAX_LOCK_PROCESSES_PER_DB) {
return;
}
@@ -699,11 +711,6 @@ static void ctdb_lock_schedule(struct ctdb_context *ctdb)
return;
}
- prog = getenv("CTDB_LOCK_HELPER");
- if (prog == NULL) {
- prog = helper;
- }
-
lock_ctx->child = ctdb_fork(ctdb);
if (lock_ctx->child == (pid_t)-1) {