|
@@ -1052,6 +1052,19 @@ static __init void ftrace_profile_debugfs(struct dentry *d_tracer)
|
|
|
|
|
|
static struct pid * const ftrace_swapper_pid = &init_struct_pid;
|
|
|
|
|
|
+loff_t
|
|
|
+ftrace_filter_lseek(struct file *file, loff_t offset, int whence)
|
|
|
+{
|
|
|
+ loff_t ret;
|
|
|
+
|
|
|
+ if (file->f_mode & FMODE_READ)
|
|
|
+ ret = seq_lseek(file, offset, whence);
|
|
|
+ else
|
|
|
+ file->f_pos = ret = 1;
|
|
|
+
|
|
|
+ return ret;
|
|
|
+}
|
|
|
+
|
|
|
#ifdef CONFIG_DYNAMIC_FTRACE
|
|
|
|
|
|
#ifndef CONFIG_FTRACE_MCOUNT_RECORD
|
|
@@ -2612,7 +2625,7 @@ static void ftrace_filter_reset(struct ftrace_hash *hash)
|
|
|
* routine, you can use ftrace_filter_write() for the write
|
|
|
* routine if @flag has FTRACE_ITER_FILTER set, or
|
|
|
* ftrace_notrace_write() if @flag has FTRACE_ITER_NOTRACE set.
|
|
|
- * ftrace_regex_lseek() should be used as the lseek routine, and
|
|
|
+ * ftrace_filter_lseek() should be used as the lseek routine, and
|
|
|
* release must call ftrace_regex_release().
|
|
|
*/
|
|
|
int
|
|
@@ -2696,19 +2709,6 @@ ftrace_notrace_open(struct inode *inode, struct file *file)
|
|
|
inode, file);
|
|
|
}
|
|
|
|
|
|
-loff_t
|
|
|
-ftrace_regex_lseek(struct file *file, loff_t offset, int whence)
|
|
|
-{
|
|
|
- loff_t ret;
|
|
|
-
|
|
|
- if (file->f_mode & FMODE_READ)
|
|
|
- ret = seq_lseek(file, offset, whence);
|
|
|
- else
|
|
|
- file->f_pos = ret = 1;
|
|
|
-
|
|
|
- return ret;
|
|
|
-}
|
|
|
-
|
|
|
static int ftrace_match(char *str, char *regex, int len, int type)
|
|
|
{
|
|
|
int matched = 0;
|
|
@@ -3570,7 +3570,7 @@ static const struct file_operations ftrace_filter_fops = {
|
|
|
.open = ftrace_filter_open,
|
|
|
.read = seq_read,
|
|
|
.write = ftrace_filter_write,
|
|
|
- .llseek = ftrace_regex_lseek,
|
|
|
+ .llseek = ftrace_filter_lseek,
|
|
|
.release = ftrace_regex_release,
|
|
|
};
|
|
|
|
|
@@ -3578,7 +3578,7 @@ static const struct file_operations ftrace_notrace_fops = {
|
|
|
.open = ftrace_notrace_open,
|
|
|
.read = seq_read,
|
|
|
.write = ftrace_notrace_write,
|
|
|
- .llseek = ftrace_regex_lseek,
|
|
|
+ .llseek = ftrace_filter_lseek,
|
|
|
.release = ftrace_regex_release,
|
|
|
};
|
|
|
|
|
@@ -3783,8 +3783,8 @@ static const struct file_operations ftrace_graph_fops = {
|
|
|
.open = ftrace_graph_open,
|
|
|
.read = seq_read,
|
|
|
.write = ftrace_graph_write,
|
|
|
+ .llseek = ftrace_filter_lseek,
|
|
|
.release = ftrace_graph_release,
|
|
|
- .llseek = seq_lseek,
|
|
|
};
|
|
|
#endif /* CONFIG_FUNCTION_GRAPH_TRACER */
|
|
|
|
|
@@ -4439,7 +4439,7 @@ static const struct file_operations ftrace_pid_fops = {
|
|
|
.open = ftrace_pid_open,
|
|
|
.write = ftrace_pid_write,
|
|
|
.read = seq_read,
|
|
|
- .llseek = seq_lseek,
|
|
|
+ .llseek = ftrace_filter_lseek,
|
|
|
.release = ftrace_pid_release,
|
|
|
};
|
|
|
|