|
@@ -2413,14 +2413,16 @@ ftrace_regex_release(struct inode *inode, struct file *file, int enable)
|
|
|
ftrace_match_records(parser->buffer, parser->idx, enable);
|
|
|
}
|
|
|
|
|
|
- mutex_lock(&ftrace_lock);
|
|
|
- if (ftrace_start_up && ftrace_enabled)
|
|
|
- ftrace_run_update_code(FTRACE_ENABLE_CALLS);
|
|
|
- mutex_unlock(&ftrace_lock);
|
|
|
-
|
|
|
trace_parser_put(parser);
|
|
|
kfree(iter);
|
|
|
|
|
|
+ if (file->f_mode & FMODE_WRITE) {
|
|
|
+ mutex_lock(&ftrace_lock);
|
|
|
+ if (ftrace_start_up && ftrace_enabled)
|
|
|
+ ftrace_run_update_code(FTRACE_ENABLE_CALLS);
|
|
|
+ mutex_unlock(&ftrace_lock);
|
|
|
+ }
|
|
|
+
|
|
|
mutex_unlock(&ftrace_regex_lock);
|
|
|
return 0;
|
|
|
}
|