sysctl: simplify ->strategy
name and nlen parameters passed to ->strategy hook are unused, remove them. In general ->strategy hook should know what it's doing, and don't do something tricky for which, say, pointer to original userspace array may be needed (name). Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Acked-by: David S. Miller <davem@davemloft.net> [ networking bits ] Cc: Ralf Baechle <ralf@linux-mips.org> Cc: David Howells <dhowells@redhat.com> Cc: Matt Mackall <mpm@selenic.com> Cc: "Eric W. Biederman" <ebiederm@xmission.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
f40cbaa5b0
commit
f221e726bf
@ -1500,7 +1500,6 @@ void register_sysctl_root(struct ctl_table_root *root)
|
||||
/* Perform the actual read/write of a sysctl table entry. */
|
||||
static int do_sysctl_strategy(struct ctl_table_root *root,
|
||||
struct ctl_table *table,
|
||||
int __user *name, int nlen,
|
||||
void __user *oldval, size_t __user *oldlenp,
|
||||
void __user *newval, size_t newlen)
|
||||
{
|
||||
@ -1514,8 +1513,7 @@ static int do_sysctl_strategy(struct ctl_table_root *root,
|
||||
return -EPERM;
|
||||
|
||||
if (table->strategy) {
|
||||
rc = table->strategy(table, name, nlen, oldval, oldlenp,
|
||||
newval, newlen);
|
||||
rc = table->strategy(table, oldval, oldlenp, newval, newlen);
|
||||
if (rc < 0)
|
||||
return rc;
|
||||
if (rc > 0)
|
||||
@ -1525,8 +1523,7 @@ static int do_sysctl_strategy(struct ctl_table_root *root,
|
||||
/* If there is no strategy routine, or if the strategy returns
|
||||
* zero, proceed with automatic r/w */
|
||||
if (table->data && table->maxlen) {
|
||||
rc = sysctl_data(table, name, nlen, oldval, oldlenp,
|
||||
newval, newlen);
|
||||
rc = sysctl_data(table, oldval, oldlenp, newval, newlen);
|
||||
if (rc < 0)
|
||||
return rc;
|
||||
}
|
||||
@ -1558,7 +1555,7 @@ repeat:
|
||||
table = table->child;
|
||||
goto repeat;
|
||||
}
|
||||
error = do_sysctl_strategy(root, table, name, nlen,
|
||||
error = do_sysctl_strategy(root, table,
|
||||
oldval, oldlenp,
|
||||
newval, newlen);
|
||||
return error;
|
||||
@ -2707,7 +2704,7 @@ int proc_doulongvec_ms_jiffies_minmax(struct ctl_table *table, int write,
|
||||
*/
|
||||
|
||||
/* The generic sysctl data routine (used if no strategy routine supplied) */
|
||||
int sysctl_data(struct ctl_table *table, int __user *name, int nlen,
|
||||
int sysctl_data(struct ctl_table *table,
|
||||
void __user *oldval, size_t __user *oldlenp,
|
||||
void __user *newval, size_t newlen)
|
||||
{
|
||||
@ -2741,7 +2738,7 @@ int sysctl_data(struct ctl_table *table, int __user *name, int nlen,
|
||||
}
|
||||
|
||||
/* The generic string strategy routine: */
|
||||
int sysctl_string(struct ctl_table *table, int __user *name, int nlen,
|
||||
int sysctl_string(struct ctl_table *table,
|
||||
void __user *oldval, size_t __user *oldlenp,
|
||||
void __user *newval, size_t newlen)
|
||||
{
|
||||
@ -2787,7 +2784,7 @@ int sysctl_string(struct ctl_table *table, int __user *name, int nlen,
|
||||
* are between the minimum and maximum values given in the arrays
|
||||
* table->extra1 and table->extra2, respectively.
|
||||
*/
|
||||
int sysctl_intvec(struct ctl_table *table, int __user *name, int nlen,
|
||||
int sysctl_intvec(struct ctl_table *table,
|
||||
void __user *oldval, size_t __user *oldlenp,
|
||||
void __user *newval, size_t newlen)
|
||||
{
|
||||
@ -2823,7 +2820,7 @@ int sysctl_intvec(struct ctl_table *table, int __user *name, int nlen,
|
||||
}
|
||||
|
||||
/* Strategy function to convert jiffies to seconds */
|
||||
int sysctl_jiffies(struct ctl_table *table, int __user *name, int nlen,
|
||||
int sysctl_jiffies(struct ctl_table *table,
|
||||
void __user *oldval, size_t __user *oldlenp,
|
||||
void __user *newval, size_t newlen)
|
||||
{
|
||||
@ -2857,7 +2854,7 @@ int sysctl_jiffies(struct ctl_table *table, int __user *name, int nlen,
|
||||
}
|
||||
|
||||
/* Strategy function to convert jiffies to seconds */
|
||||
int sysctl_ms_jiffies(struct ctl_table *table, int __user *name, int nlen,
|
||||
int sysctl_ms_jiffies(struct ctl_table *table,
|
||||
void __user *oldval, size_t __user *oldlenp,
|
||||
void __user *newval, size_t newlen)
|
||||
{
|
||||
@ -2912,35 +2909,35 @@ asmlinkage long sys_sysctl(struct __sysctl_args __user *args)
|
||||
return error;
|
||||
}
|
||||
|
||||
int sysctl_data(struct ctl_table *table, int __user *name, int nlen,
|
||||
int sysctl_data(struct ctl_table *table,
|
||||
void __user *oldval, size_t __user *oldlenp,
|
||||
void __user *newval, size_t newlen)
|
||||
{
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
int sysctl_string(struct ctl_table *table, int __user *name, int nlen,
|
||||
int sysctl_string(struct ctl_table *table,
|
||||
void __user *oldval, size_t __user *oldlenp,
|
||||
void __user *newval, size_t newlen)
|
||||
{
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
int sysctl_intvec(struct ctl_table *table, int __user *name, int nlen,
|
||||
int sysctl_intvec(struct ctl_table *table,
|
||||
void __user *oldval, size_t __user *oldlenp,
|
||||
void __user *newval, size_t newlen)
|
||||
{
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
int sysctl_jiffies(struct ctl_table *table, int __user *name, int nlen,
|
||||
int sysctl_jiffies(struct ctl_table *table,
|
||||
void __user *oldval, size_t __user *oldlenp,
|
||||
void __user *newval, size_t newlen)
|
||||
{
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
int sysctl_ms_jiffies(struct ctl_table *table, int __user *name, int nlen,
|
||||
int sysctl_ms_jiffies(struct ctl_table *table,
|
||||
void __user *oldval, size_t __user *oldlenp,
|
||||
void __user *newval, size_t newlen)
|
||||
{
|
||||
|
Reference in New Issue
Block a user