inotify: simplify subdirectory registration with register_sysctl()
There is no need to user boiler plate code to specify a set of base directories we're going to stuff sysctls under. Simplify this by using register_sysctl() and specifying the directory path directly. Move inotify_user sysctl to inotify_user.c while at it to remove clutter from kernel/sysctl.c. [mcgrof@kernel.org: remember to register fanotify_table] Link: https://lkml.kernel.org/r/YZ5A6iWLb0h3N3RC@bombadil.infradead.org [mcgrof@kernel.org: update commit log to reflect new path we decided to take] Link: https://lkml.kernel.org/r/20211123202422.819032-7-mcgrof@kernel.org Signed-off-by: Xiaoming Ni <nixiaoming@huawei.com> Signed-off-by: Luis Chamberlain <mcgrof@kernel.org> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Amir Goldstein <amir73il@gmail.com> Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Cc: Antti Palosaari <crope@iki.fi> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Benjamin LaHaise <bcrl@kvack.org> Cc: Clemens Ladisch <clemens@ladisch.de> Cc: David Airlie <airlied@linux.ie> Cc: "Eric W. Biederman" <ebiederm@xmission.com> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Iurii Zaikin <yzaikin@google.com> Cc: Jani Nikula <jani.nikula@linux.intel.com> Cc: Jan Kara <jack@suse.cz> Cc: Joel Becker <jlbec@evilplan.org> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Cc: Joseph Qi <joseph.qi@linux.alibaba.com> Cc: Julia Lawall <julia.lawall@inria.fr> Cc: Kees Cook <keescook@chromium.org> Cc: Lukas Middendorf <kernel@tuxforce.de> Cc: Mark Fasheh <mark@fasheh.com> Cc: Paul Turner <pjt@google.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Petr Mladek <pmladek@suse.com> Cc: Phillip Potter <phil@philpotter.co.uk> Cc: Qing Wang <wangqing@vivo.com> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> Cc: Sebastian Reichel <sre@kernel.org> Cc: Sergey Senozhatsky <senozhatsky@chromium.org> Cc: Stephen Kitt <steve@sk2.org> Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> Cc: Douglas Gilbert <dgilbert@interlog.com> Cc: James E.J. Bottomley <jejb@linux.ibm.com> Cc: Jani Nikula <jani.nikula@intel.com> Cc: John Ogness <john.ogness@linutronix.de> Cc: Martin K. Petersen <martin.petersen@oracle.com> Cc: "Rafael J. Wysocki" <rafael@kernel.org> Cc: Steven Rostedt (VMware) <rostedt@goodmis.org> Cc: Suren Baghdasaryan <surenb@google.com> Cc: "Theodore Ts'o" <tytso@mit.edu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
04bc883c98
commit
7b9ad122b5
@ -59,7 +59,7 @@ static int fanotify_max_queued_events __read_mostly;
|
||||
static long ft_zero = 0;
|
||||
static long ft_int_max = INT_MAX;
|
||||
|
||||
struct ctl_table fanotify_table[] = {
|
||||
static struct ctl_table fanotify_table[] = {
|
||||
{
|
||||
.procname = "max_user_groups",
|
||||
.data = &init_user_ns.ucount_max[UCOUNT_FANOTIFY_GROUPS],
|
||||
@ -88,6 +88,13 @@ struct ctl_table fanotify_table[] = {
|
||||
},
|
||||
{ }
|
||||
};
|
||||
|
||||
static void __init fanotify_sysctls_init(void)
|
||||
{
|
||||
register_sysctl("fs/fanotify", fanotify_table);
|
||||
}
|
||||
#else
|
||||
#define fanotify_sysctls_init() do { } while (0)
|
||||
#endif /* CONFIG_SYSCTL */
|
||||
|
||||
/*
|
||||
@ -1743,6 +1750,7 @@ static int __init fanotify_user_setup(void)
|
||||
init_user_ns.ucount_max[UCOUNT_FANOTIFY_GROUPS] =
|
||||
FANOTIFY_DEFAULT_MAX_GROUPS;
|
||||
init_user_ns.ucount_max[UCOUNT_FANOTIFY_MARKS] = max_marks;
|
||||
fanotify_sysctls_init();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -58,7 +58,7 @@ struct kmem_cache *inotify_inode_mark_cachep __read_mostly;
|
||||
static long it_zero = 0;
|
||||
static long it_int_max = INT_MAX;
|
||||
|
||||
struct ctl_table inotify_table[] = {
|
||||
static struct ctl_table inotify_table[] = {
|
||||
{
|
||||
.procname = "max_user_instances",
|
||||
.data = &init_user_ns.ucount_max[UCOUNT_INOTIFY_INSTANCES],
|
||||
@ -87,6 +87,14 @@ struct ctl_table inotify_table[] = {
|
||||
},
|
||||
{ }
|
||||
};
|
||||
|
||||
static void __init inotify_sysctls_init(void)
|
||||
{
|
||||
register_sysctl("fs/inotify", inotify_table);
|
||||
}
|
||||
|
||||
#else
|
||||
#define inotify_sysctls_init() do { } while (0)
|
||||
#endif /* CONFIG_SYSCTL */
|
||||
|
||||
static inline __u32 inotify_arg_to_mask(struct inode *inode, u32 arg)
|
||||
@ -849,6 +857,7 @@ static int __init inotify_user_setup(void)
|
||||
inotify_max_queued_events = 16384;
|
||||
init_user_ns.ucount_max[UCOUNT_INOTIFY_INSTANCES] = 128;
|
||||
init_user_ns.ucount_max[UCOUNT_INOTIFY_WATCHES] = watches_max;
|
||||
inotify_sysctls_init();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -5,8 +5,6 @@
|
||||
#include <linux/sysctl.h>
|
||||
#include <uapi/linux/fanotify.h>
|
||||
|
||||
extern struct ctl_table fanotify_table[]; /* for sysctl */
|
||||
|
||||
#define FAN_GROUP_FLAG(group, flag) \
|
||||
((group)->fanotify_data.flags & (flag))
|
||||
|
||||
|
@ -7,11 +7,8 @@
|
||||
#ifndef _LINUX_INOTIFY_H
|
||||
#define _LINUX_INOTIFY_H
|
||||
|
||||
#include <linux/sysctl.h>
|
||||
#include <uapi/linux/inotify.h>
|
||||
|
||||
extern struct ctl_table inotify_table[]; /* for sysctl */
|
||||
|
||||
#define ALL_INOTIFY_BITS (IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE | \
|
||||
IN_CLOSE_NOWRITE | IN_OPEN | IN_MOVED_FROM | \
|
||||
IN_MOVED_TO | IN_CREATE | IN_DELETE | \
|
||||
|
@ -126,13 +126,6 @@ static const int maxolduid = 65535;
|
||||
static const int ngroups_max = NGROUPS_MAX;
|
||||
static const int cap_last_cap = CAP_LAST_CAP;
|
||||
|
||||
#ifdef CONFIG_INOTIFY_USER
|
||||
#include <linux/inotify.h>
|
||||
#endif
|
||||
#ifdef CONFIG_FANOTIFY
|
||||
#include <linux/fanotify.h>
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PROC_SYSCTL
|
||||
|
||||
/**
|
||||
@ -3100,20 +3093,6 @@ static struct ctl_table fs_table[] = {
|
||||
.proc_handler = proc_dointvec,
|
||||
},
|
||||
#endif
|
||||
#ifdef CONFIG_INOTIFY_USER
|
||||
{
|
||||
.procname = "inotify",
|
||||
.mode = 0555,
|
||||
.child = inotify_table,
|
||||
},
|
||||
#endif
|
||||
#ifdef CONFIG_FANOTIFY
|
||||
{
|
||||
.procname = "fanotify",
|
||||
.mode = 0555,
|
||||
.child = fanotify_table,
|
||||
},
|
||||
#endif
|
||||
#ifdef CONFIG_EPOLL
|
||||
{
|
||||
.procname = "epoll",
|
||||
|
Loading…
Reference in New Issue
Block a user