projects
/
lttng-modules.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
lttng-modules v0.19-stable: setup_trace_write: Fix recursive locking
[lttng-modules.git]
/
ltt-trace-control.c
diff --git
a/ltt-trace-control.c
b/ltt-trace-control.c
index 9d6d239b49c23cc8c1920aa65b74deecf359c697..12a3f194c0fa3fcf32748db9373205709f5c58dc 100644
(file)
--- 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);
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;
}
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;
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_setup_trace:
ltt_unlock_traces();
+err_create_trace_control_dir:
mutex_unlock(&control_lock);
err_get_tracename:
err_copy_from_user:
mutex_unlock(&control_lock);
err_get_tracename:
err_copy_from_user:
This page took
0.023574 seconds
and
4
git commands to generate.