[PATCH] inotify: move sysctl
This moves the inotify sysctl knobs to "/proc/sys/fs/inotify" from "/proc/sys/fs". Also some related cleanup. Signed-off-by: Robert Love <rml@novell.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
153f805781
commit
0399cb08c5
3 changed files with 62 additions and 50 deletions
49
fs/inotify.c
49
fs/inotify.c
|
@ -45,8 +45,8 @@ static kmem_cache_t *event_cachep;
|
||||||
|
|
||||||
static struct vfsmount *inotify_mnt;
|
static struct vfsmount *inotify_mnt;
|
||||||
|
|
||||||
/* These are configurable via /proc/sys/inotify */
|
/* these are configurable via /proc/sys/fs/inotify/ */
|
||||||
int inotify_max_user_devices;
|
int inotify_max_user_instances;
|
||||||
int inotify_max_user_watches;
|
int inotify_max_user_watches;
|
||||||
int inotify_max_queued_events;
|
int inotify_max_queued_events;
|
||||||
|
|
||||||
|
@ -125,6 +125,47 @@ struct inotify_watch {
|
||||||
u32 mask; /* event mask for this watch */
|
u32 mask; /* event mask for this watch */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifdef CONFIG_SYSCTL
|
||||||
|
|
||||||
|
#include <linux/sysctl.h>
|
||||||
|
|
||||||
|
static int zero;
|
||||||
|
|
||||||
|
ctl_table inotify_table[] = {
|
||||||
|
{
|
||||||
|
.ctl_name = INOTIFY_MAX_USER_INSTANCES,
|
||||||
|
.procname = "max_user_instances",
|
||||||
|
.data = &inotify_max_user_instances,
|
||||||
|
.maxlen = sizeof(int),
|
||||||
|
.mode = 0644,
|
||||||
|
.proc_handler = &proc_dointvec_minmax,
|
||||||
|
.strategy = &sysctl_intvec,
|
||||||
|
.extra1 = &zero,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.ctl_name = INOTIFY_MAX_USER_WATCHES,
|
||||||
|
.procname = "max_user_watches",
|
||||||
|
.data = &inotify_max_user_watches,
|
||||||
|
.maxlen = sizeof(int),
|
||||||
|
.mode = 0644,
|
||||||
|
.proc_handler = &proc_dointvec_minmax,
|
||||||
|
.strategy = &sysctl_intvec,
|
||||||
|
.extra1 = &zero,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.ctl_name = INOTIFY_MAX_QUEUED_EVENTS,
|
||||||
|
.procname = "max_queued_events",
|
||||||
|
.data = &inotify_max_queued_events,
|
||||||
|
.maxlen = sizeof(int),
|
||||||
|
.mode = 0644,
|
||||||
|
.proc_handler = &proc_dointvec_minmax,
|
||||||
|
.strategy = &sysctl_intvec,
|
||||||
|
.extra1 = &zero
|
||||||
|
},
|
||||||
|
{ .ctl_name = 0 }
|
||||||
|
};
|
||||||
|
#endif /* CONFIG_SYSCTL */
|
||||||
|
|
||||||
static inline void get_inotify_dev(struct inotify_device *dev)
|
static inline void get_inotify_dev(struct inotify_device *dev)
|
||||||
{
|
{
|
||||||
atomic_inc(&dev->count);
|
atomic_inc(&dev->count);
|
||||||
|
@ -842,7 +883,7 @@ asmlinkage long sys_inotify_init(void)
|
||||||
|
|
||||||
user = get_uid(current->user);
|
user = get_uid(current->user);
|
||||||
|
|
||||||
if (unlikely(atomic_read(&user->inotify_devs) >= inotify_max_user_devices)) {
|
if (unlikely(atomic_read(&user->inotify_devs) >= inotify_max_user_instances)) {
|
||||||
ret = -EMFILE;
|
ret = -EMFILE;
|
||||||
goto out_err;
|
goto out_err;
|
||||||
}
|
}
|
||||||
|
@ -979,7 +1020,7 @@ static int __init inotify_init(void)
|
||||||
inotify_mnt = kern_mount(&inotify_fs_type);
|
inotify_mnt = kern_mount(&inotify_fs_type);
|
||||||
|
|
||||||
inotify_max_queued_events = 8192;
|
inotify_max_queued_events = 8192;
|
||||||
inotify_max_user_devices = 128;
|
inotify_max_user_instances = 8;
|
||||||
inotify_max_user_watches = 8192;
|
inotify_max_user_watches = 8192;
|
||||||
|
|
||||||
atomic_set(&inotify_cookie, 0);
|
atomic_set(&inotify_cookie, 0);
|
||||||
|
|
|
@ -61,8 +61,7 @@ enum
|
||||||
CTL_DEV=7, /* Devices */
|
CTL_DEV=7, /* Devices */
|
||||||
CTL_BUS=8, /* Busses */
|
CTL_BUS=8, /* Busses */
|
||||||
CTL_ABI=9, /* Binary emulation */
|
CTL_ABI=9, /* Binary emulation */
|
||||||
CTL_CPU=10, /* CPU stuff (speed scaling, etc) */
|
CTL_CPU=10 /* CPU stuff (speed scaling, etc) */
|
||||||
CTL_INOTIFY=11 /* Inotify */
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* CTL_BUS names: */
|
/* CTL_BUS names: */
|
||||||
|
@ -71,12 +70,12 @@ enum
|
||||||
CTL_BUS_ISA=1 /* ISA */
|
CTL_BUS_ISA=1 /* ISA */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* CTL_INOTIFY names: */
|
/* /proc/sys/fs/inotify/ */
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
INOTIFY_MAX_USER_DEVICES=1, /* max number of inotify device instances per user */
|
INOTIFY_MAX_USER_INSTANCES=1, /* max instances per user */
|
||||||
INOTIFY_MAX_USER_WATCHES=2, /* max number of inotify watches per user */
|
INOTIFY_MAX_USER_WATCHES=2, /* max watches per user */
|
||||||
INOTIFY_MAX_QUEUED_EVENTS=3 /* Max number of queued events per inotify device instance */
|
INOTIFY_MAX_QUEUED_EVENTS=3 /* max queued events per instance */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* CTL_KERN names: */
|
/* CTL_KERN names: */
|
||||||
|
@ -685,6 +684,7 @@ enum
|
||||||
FS_XFS=17, /* struct: control xfs parameters */
|
FS_XFS=17, /* struct: control xfs parameters */
|
||||||
FS_AIO_NR=18, /* current system-wide number of aio requests */
|
FS_AIO_NR=18, /* current system-wide number of aio requests */
|
||||||
FS_AIO_MAX_NR=19, /* system-wide maximum number of aio requests */
|
FS_AIO_MAX_NR=19, /* system-wide maximum number of aio requests */
|
||||||
|
FS_INOTIFY=20, /* inotify submenu */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* /proc/sys/fs/quota/ */
|
/* /proc/sys/fs/quota/ */
|
||||||
|
|
|
@ -67,12 +67,6 @@ extern int printk_ratelimit_jiffies;
|
||||||
extern int printk_ratelimit_burst;
|
extern int printk_ratelimit_burst;
|
||||||
extern int pid_max_min, pid_max_max;
|
extern int pid_max_min, pid_max_max;
|
||||||
|
|
||||||
#ifdef CONFIG_INOTIFY
|
|
||||||
extern int inotify_max_user_devices;
|
|
||||||
extern int inotify_max_user_watches;
|
|
||||||
extern int inotify_max_queued_events;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(CONFIG_X86_LOCAL_APIC) && defined(CONFIG_X86)
|
#if defined(CONFIG_X86_LOCAL_APIC) && defined(CONFIG_X86)
|
||||||
int unknown_nmi_panic;
|
int unknown_nmi_panic;
|
||||||
extern int proc_unknown_nmi_panic(ctl_table *, int, struct file *,
|
extern int proc_unknown_nmi_panic(ctl_table *, int, struct file *,
|
||||||
|
@ -152,6 +146,9 @@ extern ctl_table random_table[];
|
||||||
#ifdef CONFIG_UNIX98_PTYS
|
#ifdef CONFIG_UNIX98_PTYS
|
||||||
extern ctl_table pty_table[];
|
extern ctl_table pty_table[];
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef CONFIG_INOTIFY
|
||||||
|
extern ctl_table inotify_table[];
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_ARCH_PICK_MMAP_LAYOUT
|
#ifdef HAVE_ARCH_PICK_MMAP_LAYOUT
|
||||||
int sysctl_legacy_va_layout;
|
int sysctl_legacy_va_layout;
|
||||||
|
@ -957,6 +954,14 @@ static ctl_table fs_table[] = {
|
||||||
.mode = 0644,
|
.mode = 0644,
|
||||||
.proc_handler = &proc_dointvec,
|
.proc_handler = &proc_dointvec,
|
||||||
},
|
},
|
||||||
|
#ifdef CONFIG_INOTIFY
|
||||||
|
{
|
||||||
|
.ctl_name = FS_INOTIFY,
|
||||||
|
.procname = "inotify",
|
||||||
|
.mode = 0555,
|
||||||
|
.child = inotify_table,
|
||||||
|
},
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
.ctl_name = KERN_SETUID_DUMPABLE,
|
.ctl_name = KERN_SETUID_DUMPABLE,
|
||||||
|
@ -966,40 +971,6 @@ static ctl_table fs_table[] = {
|
||||||
.mode = 0644,
|
.mode = 0644,
|
||||||
.proc_handler = &proc_dointvec,
|
.proc_handler = &proc_dointvec,
|
||||||
},
|
},
|
||||||
#ifdef CONFIG_INOTIFY
|
|
||||||
{
|
|
||||||
.ctl_name = INOTIFY_MAX_USER_DEVICES,
|
|
||||||
.procname = "max_user_devices",
|
|
||||||
.data = &inotify_max_user_devices,
|
|
||||||
.maxlen = sizeof(int),
|
|
||||||
.mode = 0644,
|
|
||||||
.proc_handler = &proc_dointvec_minmax,
|
|
||||||
.strategy = &sysctl_intvec,
|
|
||||||
.extra1 = &zero,
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
.ctl_name = INOTIFY_MAX_USER_WATCHES,
|
|
||||||
.procname = "max_user_watches",
|
|
||||||
.data = &inotify_max_user_watches,
|
|
||||||
.maxlen = sizeof(int),
|
|
||||||
.mode = 0644,
|
|
||||||
.proc_handler = &proc_dointvec_minmax,
|
|
||||||
.strategy = &sysctl_intvec,
|
|
||||||
.extra1 = &zero,
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
.ctl_name = INOTIFY_MAX_QUEUED_EVENTS,
|
|
||||||
.procname = "max_queued_events",
|
|
||||||
.data = &inotify_max_queued_events,
|
|
||||||
.maxlen = sizeof(int),
|
|
||||||
.mode = 0644,
|
|
||||||
.proc_handler = &proc_dointvec_minmax,
|
|
||||||
.strategy = &sysctl_intvec,
|
|
||||||
.extra1 = &zero
|
|
||||||
},
|
|
||||||
#endif
|
|
||||||
{ .ctl_name = 0 }
|
{ .ctl_name = 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue