Messages in this thread Patch in this message | | | Date | Thu, 16 Jul 2009 18:51:35 +0200 | From | Jiri Olsa <> | Subject | [PATCH] tracing: dont reset set_ftrace_filter/notrace when opened with r/w perm |
| |
If user setup set_ftrace_filter/set_ftrace_notrace files and then opens them with read&write permissions, the previous setup will be removed.
Tested with following program:
[snip] #include <stdio.h> #include <string.h>
int main(int argc, char **argv) { FILE *f; char *mode = "w+"; char *file = argv[1];
if (argc == 3) mode = argv[2];
if (NULL == (f = fopen(file, mode))) { perror("fopen failed"); return -1; }
while(!feof(f)) { #define BUFLEN 100 char buf[BUFLEN]; memset(buf, 0, BUFLEN); fgets(buf, BUFLEN, f); printf(buf); }
fclose(f); return 0; } [snip]
wbr, jirka
Signed-off-by: Jiri Olsa <jolsa@redhat.com>
--- diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index 4521c77..11394bc 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@ -1661,10 +1661,6 @@ ftrace_regex_open(struct inode *inode, struct file *file, int enable) return -ENOMEM; mutex_lock(&ftrace_regex_lock); - if ((file->f_mode & FMODE_WRITE) && - !(file->f_flags & O_APPEND)) - ftrace_filter_reset(enable); - if (file->f_mode & FMODE_READ) { iter->pg = ftrace_pages_start; iter->flags = enable ? FTRACE_ITER_FILTER : @@ -2260,6 +2256,9 @@ ftrace_regex_write(struct file *file, const char __user *ubuf, return 0; mutex_lock(&ftrace_regex_lock); + if ((file->f_mode & FMODE_WRITE) && + !(file->f_flags & O_APPEND)) + ftrace_filter_reset(enable); if (file->f_mode & FMODE_READ) { struct seq_file *m = file->private_data;
| |