From 1a28fb652a1bfeb24c75aa8966867aced7cbface Mon Sep 17 00:00:00 2001 From: Juha Niskanen Date: Fri, 25 Nov 2011 16:59:56 -0500 Subject: [PATCH] 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 --- ltt-trace-control.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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: -- 2.34.1