sysctl ipc: Remove dead binary sysctl support code.

Now that sys_sysctl is a generic wrapper around /proc/sys  .ctl_name
and .strategy members of sysctl tables are dead code.  Remove them.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
This commit is contained in:
Eric W. Biederman 2009-04-03 02:51:10 -07:00
Родитель a153cf9dd0
Коммит 2bc4657c15
2 изменённых файлов: 3 добавлений и 81 удалений

Просмотреть файл

@ -129,136 +129,60 @@ static int proc_ipcauto_dointvec_minmax(ctl_table *table, int write,
#define proc_ipcauto_dointvec_minmax NULL #define proc_ipcauto_dointvec_minmax NULL
#endif #endif
#ifdef CONFIG_SYSCTL_SYSCALL
/* The generic sysctl ipc data routine. */
static int sysctl_ipc_data(ctl_table *table,
void __user *oldval, size_t __user *oldlenp,
void __user *newval, size_t newlen)
{
size_t len;
void *data;
/* Get out of I don't have a variable */
if (!table->data || !table->maxlen)
return -ENOTDIR;
data = get_ipc(table);
if (!data)
return -ENOTDIR;
if (oldval && oldlenp) {
if (get_user(len, oldlenp))
return -EFAULT;
if (len) {
if (len > table->maxlen)
len = table->maxlen;
if (copy_to_user(oldval, data, len))
return -EFAULT;
if (put_user(len, oldlenp))
return -EFAULT;
}
}
if (newval && newlen) {
if (newlen > table->maxlen)
newlen = table->maxlen;
if (copy_from_user(data, newval, newlen))
return -EFAULT;
}
return 1;
}
static int sysctl_ipc_registered_data(ctl_table *table,
void __user *oldval, size_t __user *oldlenp,
void __user *newval, size_t newlen)
{
int rc;
rc = sysctl_ipc_data(table, oldval, oldlenp, newval, newlen);
if (newval && newlen && rc > 0)
/*
* Tunable has successfully been changed from userland
*/
unregister_ipcns_notifier(current->nsproxy->ipc_ns);
return rc;
}
#else
#define sysctl_ipc_data NULL
#define sysctl_ipc_registered_data NULL
#endif
static int zero; static int zero;
static int one = 1; static int one = 1;
static struct ctl_table ipc_kern_table[] = { static struct ctl_table ipc_kern_table[] = {
{ {
.ctl_name = KERN_SHMMAX,
.procname = "shmmax", .procname = "shmmax",
.data = &init_ipc_ns.shm_ctlmax, .data = &init_ipc_ns.shm_ctlmax,
.maxlen = sizeof (init_ipc_ns.shm_ctlmax), .maxlen = sizeof (init_ipc_ns.shm_ctlmax),
.mode = 0644, .mode = 0644,
.proc_handler = proc_ipc_doulongvec_minmax, .proc_handler = proc_ipc_doulongvec_minmax,
.strategy = sysctl_ipc_data,
}, },
{ {
.ctl_name = KERN_SHMALL,
.procname = "shmall", .procname = "shmall",
.data = &init_ipc_ns.shm_ctlall, .data = &init_ipc_ns.shm_ctlall,
.maxlen = sizeof (init_ipc_ns.shm_ctlall), .maxlen = sizeof (init_ipc_ns.shm_ctlall),
.mode = 0644, .mode = 0644,
.proc_handler = proc_ipc_doulongvec_minmax, .proc_handler = proc_ipc_doulongvec_minmax,
.strategy = sysctl_ipc_data,
}, },
{ {
.ctl_name = KERN_SHMMNI,
.procname = "shmmni", .procname = "shmmni",
.data = &init_ipc_ns.shm_ctlmni, .data = &init_ipc_ns.shm_ctlmni,
.maxlen = sizeof (init_ipc_ns.shm_ctlmni), .maxlen = sizeof (init_ipc_ns.shm_ctlmni),
.mode = 0644, .mode = 0644,
.proc_handler = proc_ipc_dointvec, .proc_handler = proc_ipc_dointvec,
.strategy = sysctl_ipc_data,
}, },
{ {
.ctl_name = KERN_MSGMAX,
.procname = "msgmax", .procname = "msgmax",
.data = &init_ipc_ns.msg_ctlmax, .data = &init_ipc_ns.msg_ctlmax,
.maxlen = sizeof (init_ipc_ns.msg_ctlmax), .maxlen = sizeof (init_ipc_ns.msg_ctlmax),
.mode = 0644, .mode = 0644,
.proc_handler = proc_ipc_dointvec, .proc_handler = proc_ipc_dointvec,
.strategy = sysctl_ipc_data,
}, },
{ {
.ctl_name = KERN_MSGMNI,
.procname = "msgmni", .procname = "msgmni",
.data = &init_ipc_ns.msg_ctlmni, .data = &init_ipc_ns.msg_ctlmni,
.maxlen = sizeof (init_ipc_ns.msg_ctlmni), .maxlen = sizeof (init_ipc_ns.msg_ctlmni),
.mode = 0644, .mode = 0644,
.proc_handler = proc_ipc_callback_dointvec, .proc_handler = proc_ipc_callback_dointvec,
.strategy = sysctl_ipc_registered_data,
}, },
{ {
.ctl_name = KERN_MSGMNB,
.procname = "msgmnb", .procname = "msgmnb",
.data = &init_ipc_ns.msg_ctlmnb, .data = &init_ipc_ns.msg_ctlmnb,
.maxlen = sizeof (init_ipc_ns.msg_ctlmnb), .maxlen = sizeof (init_ipc_ns.msg_ctlmnb),
.mode = 0644, .mode = 0644,
.proc_handler = proc_ipc_dointvec, .proc_handler = proc_ipc_dointvec,
.strategy = sysctl_ipc_data,
}, },
{ {
.ctl_name = KERN_SEM,
.procname = "sem", .procname = "sem",
.data = &init_ipc_ns.sem_ctls, .data = &init_ipc_ns.sem_ctls,
.maxlen = 4*sizeof (int), .maxlen = 4*sizeof (int),
.mode = 0644, .mode = 0644,
.proc_handler = proc_ipc_dointvec, .proc_handler = proc_ipc_dointvec,
.strategy = sysctl_ipc_data,
}, },
{ {
.ctl_name = CTL_UNNUMBERED,
.procname = "auto_msgmni", .procname = "auto_msgmni",
.data = &init_ipc_ns.auto_msgmni, .data = &init_ipc_ns.auto_msgmni,
.maxlen = sizeof(int), .maxlen = sizeof(int),
@ -272,7 +196,6 @@ static struct ctl_table ipc_kern_table[] = {
static struct ctl_table ipc_root_table[] = { static struct ctl_table ipc_root_table[] = {
{ {
.ctl_name = CTL_KERN,
.procname = "kernel", .procname = "kernel",
.mode = 0555, .mode = 0555,
.child = ipc_kern_table, .child = ipc_kern_table,

Просмотреть файл

@ -88,7 +88,7 @@ static ctl_table mq_sysctls[] = {
.extra1 = &msg_maxsize_limit_min, .extra1 = &msg_maxsize_limit_min,
.extra2 = &msg_maxsize_limit_max, .extra2 = &msg_maxsize_limit_max,
}, },
{ .ctl_name = 0 } {}
}; };
static ctl_table mq_sysctl_dir[] = { static ctl_table mq_sysctl_dir[] = {
@ -97,17 +97,16 @@ static ctl_table mq_sysctl_dir[] = {
.mode = 0555, .mode = 0555,
.child = mq_sysctls, .child = mq_sysctls,
}, },
{ .ctl_name = 0 } {}
}; };
static ctl_table mq_sysctl_root[] = { static ctl_table mq_sysctl_root[] = {
{ {
.ctl_name = CTL_FS,
.procname = "fs", .procname = "fs",
.mode = 0555, .mode = 0555,
.child = mq_sysctl_dir, .child = mq_sysctl_dir,
}, },
{ .ctl_name = 0 } {}
}; };
struct ctl_table_header *mq_register_sysctl_table(void) struct ctl_table_header *mq_register_sysctl_table(void)