Message ID | 20241010152215.3025842-11-yukaixiong@huawei.com (mailing list archive) |
---|---|
State | Handled Elsewhere |
Headers | show |
Series | sysctl: move sysctls from vm_table into its own files | expand |
On Thu 10-10-24 23:22:10, Kaixiong Yu wrote: > The sysctl_drop_caches to fs/drop_caches.c, move it to > fs/drop_caches.c from /kernel/sysctl.c. And remove the > useless extern variable declaration from include/linux/mm.h > > Signed-off-by: Kaixiong Yu <yukaixiong@huawei.com> > Reviewed-by: Kees Cook <kees@kernel.org> Looks good. Feel free to add: Reviewed-by: Jan Kara <jack@suse.cz> Honza > --- > v3: > - change the title > --- > fs/drop_caches.c | 23 +++++++++++++++++++++-- > include/linux/mm.h | 6 ------ > kernel/sysctl.c | 9 --------- > 3 files changed, 21 insertions(+), 17 deletions(-) > > diff --git a/fs/drop_caches.c b/fs/drop_caches.c > index d45ef541d848..f2551ace800f 100644 > --- a/fs/drop_caches.c > +++ b/fs/drop_caches.c > @@ -14,7 +14,7 @@ > #include "internal.h" > > /* A global variable is a bit ugly, but it keeps the code simple */ > -int sysctl_drop_caches; > +static int sysctl_drop_caches; > > static void drop_pagecache_sb(struct super_block *sb, void *unused) > { > @@ -48,7 +48,7 @@ static void drop_pagecache_sb(struct super_block *sb, void *unused) > iput(toput_inode); > } > > -int drop_caches_sysctl_handler(const struct ctl_table *table, int write, > +static int drop_caches_sysctl_handler(const struct ctl_table *table, int write, > void *buffer, size_t *length, loff_t *ppos) > { > int ret; > @@ -77,3 +77,22 @@ int drop_caches_sysctl_handler(const struct ctl_table *table, int write, > } > return 0; > } > + > +static struct ctl_table drop_caches_table[] = { > + { > + .procname = "drop_caches", > + .data = &sysctl_drop_caches, > + .maxlen = sizeof(int), > + .mode = 0200, > + .proc_handler = drop_caches_sysctl_handler, > + .extra1 = SYSCTL_ONE, > + .extra2 = SYSCTL_FOUR, > + }, > +}; > + > +static int __init init_vm_drop_caches_sysctls(void) > +{ > + register_sysctl_init("vm", drop_caches_table); > + return 0; > +} > +fs_initcall(init_vm_drop_caches_sysctls); > diff --git a/include/linux/mm.h b/include/linux/mm.h > index c7f73bf32024..ed2e7425c838 100644 > --- a/include/linux/mm.h > +++ b/include/linux/mm.h > @@ -3791,12 +3791,6 @@ static inline int in_gate_area(struct mm_struct *mm, unsigned long addr) > > extern bool process_shares_mm(struct task_struct *p, struct mm_struct *mm); > > -#ifdef CONFIG_SYSCTL > -extern int sysctl_drop_caches; > -int drop_caches_sysctl_handler(const struct ctl_table *, int, void *, size_t *, > - loff_t *); > -#endif > - > void drop_slab(void); > > #ifndef CONFIG_MMU > diff --git a/kernel/sysctl.c b/kernel/sysctl.c > index 373e018b950c..d638a1bac9af 100644 > --- a/kernel/sysctl.c > +++ b/kernel/sysctl.c > @@ -2024,15 +2024,6 @@ static struct ctl_table kern_table[] = { > }; > > static struct ctl_table vm_table[] = { > - { > - .procname = "drop_caches", > - .data = &sysctl_drop_caches, > - .maxlen = sizeof(int), > - .mode = 0200, > - .proc_handler = drop_caches_sysctl_handler, > - .extra1 = SYSCTL_ONE, > - .extra2 = SYSCTL_FOUR, > - }, > { > .procname = "vfs_cache_pressure", > .data = &sysctl_vfs_cache_pressure, > -- > 2.34.1 >
On Thu, Oct 10, 2024 at 11:22:10PM +0800, Kaixiong Yu wrote: > The sysctl_drop_caches to fs/drop_caches.c, move it to > fs/drop_caches.c from /kernel/sysctl.c. And remove the > useless extern variable declaration from include/linux/mm.h > > Signed-off-by: Kaixiong Yu <yukaixiong@huawei.com> > Reviewed-by: Kees Cook <kees@kernel.org> > --- Reviewed-by: Christian Brauner <brauner@kernel.org>
diff --git a/fs/drop_caches.c b/fs/drop_caches.c index d45ef541d848..f2551ace800f 100644 --- a/fs/drop_caches.c +++ b/fs/drop_caches.c @@ -14,7 +14,7 @@ #include "internal.h" /* A global variable is a bit ugly, but it keeps the code simple */ -int sysctl_drop_caches; +static int sysctl_drop_caches; static void drop_pagecache_sb(struct super_block *sb, void *unused) { @@ -48,7 +48,7 @@ static void drop_pagecache_sb(struct super_block *sb, void *unused) iput(toput_inode); } -int drop_caches_sysctl_handler(const struct ctl_table *table, int write, +static int drop_caches_sysctl_handler(const struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { int ret; @@ -77,3 +77,22 @@ int drop_caches_sysctl_handler(const struct ctl_table *table, int write, } return 0; } + +static struct ctl_table drop_caches_table[] = { + { + .procname = "drop_caches", + .data = &sysctl_drop_caches, + .maxlen = sizeof(int), + .mode = 0200, + .proc_handler = drop_caches_sysctl_handler, + .extra1 = SYSCTL_ONE, + .extra2 = SYSCTL_FOUR, + }, +}; + +static int __init init_vm_drop_caches_sysctls(void) +{ + register_sysctl_init("vm", drop_caches_table); + return 0; +} +fs_initcall(init_vm_drop_caches_sysctls); diff --git a/include/linux/mm.h b/include/linux/mm.h index c7f73bf32024..ed2e7425c838 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -3791,12 +3791,6 @@ static inline int in_gate_area(struct mm_struct *mm, unsigned long addr) extern bool process_shares_mm(struct task_struct *p, struct mm_struct *mm); -#ifdef CONFIG_SYSCTL -extern int sysctl_drop_caches; -int drop_caches_sysctl_handler(const struct ctl_table *, int, void *, size_t *, - loff_t *); -#endif - void drop_slab(void); #ifndef CONFIG_MMU diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 373e018b950c..d638a1bac9af 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -2024,15 +2024,6 @@ static struct ctl_table kern_table[] = { }; static struct ctl_table vm_table[] = { - { - .procname = "drop_caches", - .data = &sysctl_drop_caches, - .maxlen = sizeof(int), - .mode = 0200, - .proc_handler = drop_caches_sysctl_handler, - .extra1 = SYSCTL_ONE, - .extra2 = SYSCTL_FOUR, - }, { .procname = "vfs_cache_pressure", .data = &sysctl_vfs_cache_pressure,