From: Juha Niskanen Date: Fri, 25 Nov 2011 21:59:56 +0000 (-0500) Subject: lttng-modules v0.19-stable: setup_trace_write: Fix recursive locking X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=refs%2Fheads%2Fv0.19-stable;p=lttng-modules.git lttng-modules v0.19-stable: setup_trace_write: Fix recursive locking lttng-modules: ltt_trace_destroy calls ltt_lock_traces internally so this non-recursive mutex must be first unlocked when executing error handling code. Signed-off-by: Juha Niskanen Signed-off-by: Mathieu Desnoyers --- diff --git a/ltt-trace-control.c b/ltt-trace-control.c index 9d6d239b..12a3f194 100644 --- a/ltt-trace-control.c +++ b/ltt-trace-control.c @@ -734,6 +734,8 @@ ssize_t setup_trace_write(struct file *file, const char __user *user_buf, if (IS_ERR_VALUE(err)) { printk(KERN_ERR "setup_trace_write: " "_create_trace_control_dir failed: %d\n", err); + ltt_unlock_traces(); + ltt_trace_destroy(trace_name); goto err_create_trace_control_dir; } @@ -744,10 +746,9 @@ ssize_t setup_trace_write(struct file *file, const char __user *user_buf, free_page((unsigned long)trace_name); return count; -err_create_trace_control_dir: - ltt_trace_destroy(trace_name); err_setup_trace: ltt_unlock_traces(); +err_create_trace_control_dir: mutex_unlock(&control_lock); err_get_tracename: err_copy_from_user: