Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0399cb08 authored by Robert Love's avatar Robert Love Committed by Linus Torvalds
Browse files

[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: default avatarRobert Love <rml@novell.com>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 153f8057
Loading
Loading
Loading
Loading
+45 −4
Original line number Diff line number Diff line
@@ -45,8 +45,8 @@ static kmem_cache_t *event_cachep;

static struct vfsmount *inotify_mnt;

/* These are configurable via /proc/sys/inotify */
int inotify_max_user_devices;
/* these are configurable via /proc/sys/fs/inotify/ */
int inotify_max_user_instances;
int inotify_max_user_watches;
int inotify_max_queued_events;

@@ -125,6 +125,47 @@ struct inotify_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)
{
	atomic_inc(&dev->count);
@@ -842,7 +883,7 @@ asmlinkage long sys_inotify_init(void)

	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;
		goto out_err;
	}
@@ -979,7 +1020,7 @@ static int __init inotify_init(void)
	inotify_mnt = kern_mount(&inotify_fs_type);

	inotify_max_queued_events = 8192;
	inotify_max_user_devices = 128;
	inotify_max_user_instances = 8;
	inotify_max_user_watches = 8192;

	atomic_set(&inotify_cookie, 0);
+6 −6
Original line number Diff line number Diff line
@@ -61,8 +61,7 @@ enum
	CTL_DEV=7,		/* Devices */
	CTL_BUS=8,		/* Busses */
	CTL_ABI=9,		/* Binary emulation */
	CTL_CPU=10,		/* CPU stuff (speed scaling, etc) */
	CTL_INOTIFY=11		/* Inotify */
	CTL_CPU=10		/* CPU stuff (speed scaling, etc) */
};

/* CTL_BUS names: */
@@ -71,12 +70,12 @@ enum
	CTL_BUS_ISA=1		/* ISA */
};

/* CTL_INOTIFY names: */
/* /proc/sys/fs/inotify/ */
enum
{
	INOTIFY_MAX_USER_DEVICES=1,	/* max number of inotify device instances per user */
	INOTIFY_MAX_USER_WATCHES=2,	/* max number of inotify watches per user */
	INOTIFY_MAX_QUEUED_EVENTS=3	/* Max number of queued events per inotify device instance */
	INOTIFY_MAX_USER_INSTANCES=1,	/* max instances per user */
	INOTIFY_MAX_USER_WATCHES=2,	/* max watches per user */
	INOTIFY_MAX_QUEUED_EVENTS=3	/* max queued events per instance */
};

/* CTL_KERN names: */
@@ -685,6 +684,7 @@ enum
	FS_XFS=17,	/* struct: control xfs parameters */
	FS_AIO_NR=18,	/* current system-wide 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/ */
+11 −40
Original line number Diff line number Diff line
@@ -67,12 +67,6 @@ extern int printk_ratelimit_jiffies;
extern int printk_ratelimit_burst;
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)
int unknown_nmi_panic;
extern int proc_unknown_nmi_panic(ctl_table *, int, struct file *,
@@ -152,6 +146,9 @@ extern ctl_table random_table[];
#ifdef CONFIG_UNIX98_PTYS
extern ctl_table pty_table[];
#endif
#ifdef CONFIG_INOTIFY
extern ctl_table inotify_table[];
#endif

#ifdef HAVE_ARCH_PICK_MMAP_LAYOUT
int sysctl_legacy_va_layout;
@@ -957,6 +954,14 @@ static ctl_table fs_table[] = {
		.mode		= 0644,
		.proc_handler	= &proc_dointvec,
	},
#ifdef CONFIG_INOTIFY
	{
		.ctl_name	= FS_INOTIFY,
		.procname	= "inotify",
		.mode		= 0555,
		.child		= inotify_table,
	},
#endif	
#endif
	{
		.ctl_name	= KERN_SETUID_DUMPABLE,
@@ -966,40 +971,6 @@ static ctl_table fs_table[] = {
		.mode		= 0644,
		.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 }
};