mirror of
https://github.com/samba-team/samba.git
synced 2025-01-20 14:03:59 +03:00
ctdb: Use str_list_add_printf() in debug_locks_args()
Saves lines, str_list_add_printf takes care of NULL checks Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Noel Power <noel.power@suse.com>
This commit is contained in:
parent
2fa0eabe64
commit
65b3081f4b
@ -496,47 +496,22 @@ fail:
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char **debug_locks_args(TALLOC_CTX *mem_ctx, struct lock_context *lock_ctx)
|
static char **debug_locks_args(TALLOC_CTX *mem_ctx,
|
||||||
|
struct lock_context *lock_ctx)
|
||||||
{
|
{
|
||||||
const char **args = NULL;
|
int tdb_flags = tdb_get_flags(lock_ctx->ctdb_db->ltdb->tdb);
|
||||||
int tdb_flags;
|
char **args = str_list_make_empty(mem_ctx);
|
||||||
int nargs, i;
|
|
||||||
|
|
||||||
/* Program, lock helper PID, db|record, tdb path, fcntl|mutex, NULL */
|
str_list_add_printf(&args, "debug_locks");
|
||||||
nargs = 6;
|
str_list_add_printf(&args, "%d", lock_ctx->child);
|
||||||
|
str_list_add_printf(&args,
|
||||||
args = talloc_array(mem_ctx, const char *, nargs);
|
"%s",
|
||||||
if (args == NULL) {
|
(lock_ctx->type == LOCK_RECORD) ? "RECORD" : "DB");
|
||||||
return NULL;
|
str_list_add_printf(&args, "%s", lock_ctx->ctdb_db->db_path);
|
||||||
}
|
|
||||||
|
|
||||||
args[0] = talloc_strdup(args, "debug_locks");
|
|
||||||
args[1] = talloc_asprintf(args, "%d", lock_ctx->child);
|
|
||||||
|
|
||||||
if (lock_ctx->type == LOCK_RECORD) {
|
|
||||||
args[2] = talloc_strdup(args, "RECORD");
|
|
||||||
} else {
|
|
||||||
args[2] = talloc_strdup(args, "DB");
|
|
||||||
}
|
|
||||||
|
|
||||||
args[3] = talloc_strdup(args, lock_ctx->ctdb_db->db_path);
|
|
||||||
|
|
||||||
tdb_flags = tdb_get_flags(lock_ctx->ctdb_db->ltdb->tdb);
|
|
||||||
if (tdb_flags & TDB_MUTEX_LOCKING) {
|
|
||||||
args[4] = talloc_strdup(args, "MUTEX");
|
|
||||||
} else {
|
|
||||||
args[4] = talloc_strdup(args, "FCNTL");
|
|
||||||
}
|
|
||||||
|
|
||||||
args[5] = NULL;
|
|
||||||
|
|
||||||
for (i=0; i<nargs-1; i++) {
|
|
||||||
if (args[i] == NULL) {
|
|
||||||
talloc_free(args);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
str_list_add_printf(&args,
|
||||||
|
(tdb_flags & TDB_MUTEX_LOCKING) ? "MUTEX"
|
||||||
|
: "FCNTL");
|
||||||
return args;
|
return args;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -556,7 +531,7 @@ static void ctdb_lock_timeout_handler(struct tevent_context *ev,
|
|||||||
double elapsed_time;
|
double elapsed_time;
|
||||||
bool skip;
|
bool skip;
|
||||||
char *keystr;
|
char *keystr;
|
||||||
const char **args;
|
char **args;
|
||||||
bool ok;
|
bool ok;
|
||||||
|
|
||||||
lock_ctx = talloc_get_type_abort(private_data, struct lock_context);
|
lock_ctx = talloc_get_type_abort(private_data, struct lock_context);
|
||||||
@ -611,7 +586,7 @@ lock_debug:
|
|||||||
if (args != NULL) {
|
if (args != NULL) {
|
||||||
pid = vfork();
|
pid = vfork();
|
||||||
if (pid == 0) {
|
if (pid == 0) {
|
||||||
execvp(debug_locks, discard_const(args));
|
execvp(debug_locks, args);
|
||||||
_exit(0);
|
_exit(0);
|
||||||
}
|
}
|
||||||
talloc_free(args);
|
talloc_free(args);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user