From 2cc98f9ea58485e1f539f77ba3eb5d9788908ae6 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Mon, 14 Jul 2008 14:59:39 -0700 Subject: [PATCH] mdmon: close small window of invalid mon_tid There is a small chance that the manager tries to wake the monitor before mon_tid is set. Signed-off-by: Dan Williams --- mdmon.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/mdmon.c b/mdmon.c index 99f2f2c..c7d7f68 100644 --- a/mdmon.c +++ b/mdmon.c @@ -52,7 +52,6 @@ int run_child(void *v) { struct supertype *c = v; - mon_tid = syscall(SYS_gettid); do_monitor(c); return 0; } @@ -60,16 +59,14 @@ int run_child(void *v) int clone_monitor(struct supertype *container) { static char stack[4096]; - int rv; - - rv = clone(run_child, stack+4096-64, + mon_tid = clone(run_child, stack+4096-64, CLONE_FS|CLONE_FILES|CLONE_VM|CLONE_SIGHAND|CLONE_THREAD, container); mgr_tid = syscall(SYS_gettid); - - return rv; + + return mon_tid; } static struct superswitch *find_metadata_methods(char *vers)