proc: move /proc/schedstat boilerplate to kernel/sched_stats.h Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
diff --git a/fs/proc/proc_misc.c b/fs/proc/proc_misc.c index f6d25db..4a768ed 100644 --- a/fs/proc/proc_misc.c +++ b/fs/proc/proc_misc.c
@@ -195,9 +195,6 @@ proc_symlink("mounts", NULL, "self/mounts"); /* And now for trickier ones */ -#ifdef CONFIG_SCHEDSTATS - proc_create("schedstat", 0, NULL, &proc_schedstat_operations); -#endif #ifdef CONFIG_PROC_KCORE proc_root_kcore = proc_create("kcore", S_IRUSR, NULL, &proc_kcore_operations); if (proc_root_kcore)
diff --git a/include/linux/sched.h b/include/linux/sched.h index 5c38db5..7f60cb9 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h
@@ -681,10 +681,6 @@ }; #endif /* defined(CONFIG_SCHEDSTATS) || defined(CONFIG_TASK_DELAY_ACCT) */ -#ifdef CONFIG_SCHEDSTATS -extern const struct file_operations proc_schedstat_operations; -#endif /* CONFIG_SCHEDSTATS */ - #ifdef CONFIG_TASK_DELAY_ACCT struct task_delay_info { spinlock_t lock;
diff --git a/kernel/sched.c b/kernel/sched.c index d906f72..5a70189 100644 --- a/kernel/sched.c +++ b/kernel/sched.c
@@ -55,6 +55,7 @@ #include <linux/cpuset.h> #include <linux/percpu.h> #include <linux/kthread.h> +#include <linux/proc_fs.h> #include <linux/seq_file.h> #include <linux/sysctl.h> #include <linux/syscalls.h>
diff --git a/kernel/sched_stats.h b/kernel/sched_stats.h index b8c1569..3d14ce2 100644 --- a/kernel/sched_stats.h +++ b/kernel/sched_stats.h
@@ -90,13 +90,20 @@ return res; } -const struct file_operations proc_schedstat_operations = { +static const struct file_operations proc_schedstat_operations = { .open = schedstat_open, .read = seq_read, .llseek = seq_lseek, .release = single_release, }; +static int __init proc_schedstat_init(void) +{ + proc_create("schedstat", 0, NULL, &proc_schedstat_operations); + return 0; +} +module_init(proc_schedstat_init); + /* * Expects runqueue lock to be held for atomicity of update */