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:
Родитель
a153cf9dd0
Коммит
2bc4657c15
|
@ -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)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче