ftrace: Move ftrace_filter_lseek out of CONFIG_DYNAMIC_FTRACE section
As ftrace_filter_lseek is now used with ftrace_pid_fops, it needs to be moved out of the #ifdef CONFIG_DYNAMIC_FTRACE section as the ftrace_pid_fops is defined when DYNAMIC_FTRACE is not. Cc: stable@vger.kernel.org Cc: Namhyung Kim <namhyung@kernel.org> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
Родитель
6a76f8c0ab
Коммит
7f49ef69db
|
@ -396,7 +396,6 @@ ssize_t ftrace_filter_write(struct file *file, const char __user *ubuf,
|
||||||
size_t cnt, loff_t *ppos);
|
size_t cnt, loff_t *ppos);
|
||||||
ssize_t ftrace_notrace_write(struct file *file, const char __user *ubuf,
|
ssize_t ftrace_notrace_write(struct file *file, const char __user *ubuf,
|
||||||
size_t cnt, loff_t *ppos);
|
size_t cnt, loff_t *ppos);
|
||||||
loff_t ftrace_filter_lseek(struct file *file, loff_t offset, int whence);
|
|
||||||
int ftrace_regex_release(struct inode *inode, struct file *file);
|
int ftrace_regex_release(struct inode *inode, struct file *file);
|
||||||
|
|
||||||
void __init
|
void __init
|
||||||
|
@ -569,6 +568,8 @@ static inline int
|
||||||
ftrace_regex_release(struct inode *inode, struct file *file) { return -ENODEV; }
|
ftrace_regex_release(struct inode *inode, struct file *file) { return -ENODEV; }
|
||||||
#endif /* CONFIG_DYNAMIC_FTRACE */
|
#endif /* CONFIG_DYNAMIC_FTRACE */
|
||||||
|
|
||||||
|
loff_t ftrace_filter_lseek(struct file *file, loff_t offset, int whence);
|
||||||
|
|
||||||
/* totally disable ftrace - can not re-enable after this */
|
/* totally disable ftrace - can not re-enable after this */
|
||||||
void ftrace_kill(void);
|
void ftrace_kill(void);
|
||||||
|
|
||||||
|
|
|
@ -1052,6 +1052,19 @@ static __init void ftrace_profile_debugfs(struct dentry *d_tracer)
|
||||||
|
|
||||||
static struct pid * const ftrace_swapper_pid = &init_struct_pid;
|
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
|
#ifdef CONFIG_DYNAMIC_FTRACE
|
||||||
|
|
||||||
#ifndef CONFIG_FTRACE_MCOUNT_RECORD
|
#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, you can use ftrace_filter_write() for the write
|
||||||
* routine if @flag has FTRACE_ITER_FILTER set, or
|
* routine if @flag has FTRACE_ITER_FILTER set, or
|
||||||
* ftrace_notrace_write() if @flag has FTRACE_ITER_NOTRACE set.
|
* 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().
|
* release must call ftrace_regex_release().
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
|
@ -2696,19 +2709,6 @@ ftrace_notrace_open(struct inode *inode, struct file *file)
|
||||||
inode, file);
|
inode, file);
|
||||||
}
|
}
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int ftrace_match(char *str, char *regex, int len, int type)
|
static int ftrace_match(char *str, char *regex, int len, int type)
|
||||||
{
|
{
|
||||||
int matched = 0;
|
int matched = 0;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче