diff options
author | Amitay Isaacs <amitay@gmail.com> | 2013-05-08 13:45:55 +1000 |
---|---|---|
committer | Amitay Isaacs <amitay@gmail.com> | 2013-05-24 09:06:40 +1000 |
commit | c8d577eb804ff35cc01a7230237c7215d17616a2 (patch) | |
tree | 81a86017e943dfdfe590fd7c5af12c77ef871186 /ctdb/server/ctdb_lock.c | |
parent | 1ddc7b0d10d317755f07e4a6a72a50390c2d7c96 (diff) | |
download | samba-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.c | 19 |
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) { |