forked from Minki/linux
7cc13edc13
This patch takes the CTL_UNNUMBERD concept from NFS and makes it available to all new sysctl users. At the same time the sysctl binary interface maintenance documentation is updated to mention and to describe what is needed to successfully maintain the sysctl binary interface. Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Acked-by: Alan Cox <alan@redhat.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
89 lines
1.9 KiB
C
89 lines
1.9 KiB
C
/*
|
|
* linux/fs/nfs/sysctl.c
|
|
*
|
|
* Sysctl interface to NFS parameters
|
|
*/
|
|
#include <linux/types.h>
|
|
#include <linux/linkage.h>
|
|
#include <linux/ctype.h>
|
|
#include <linux/fs.h>
|
|
#include <linux/sysctl.h>
|
|
#include <linux/module.h>
|
|
#include <linux/nfs4.h>
|
|
#include <linux/nfs_idmap.h>
|
|
#include <linux/nfs_fs.h>
|
|
|
|
#include "callback.h"
|
|
|
|
static const int nfs_set_port_min = 0;
|
|
static const int nfs_set_port_max = 65535;
|
|
static struct ctl_table_header *nfs_callback_sysctl_table;
|
|
|
|
static ctl_table nfs_cb_sysctls[] = {
|
|
#ifdef CONFIG_NFS_V4
|
|
{
|
|
.ctl_name = CTL_UNNUMBERED,
|
|
.procname = "nfs_callback_tcpport",
|
|
.data = &nfs_callback_set_tcpport,
|
|
.maxlen = sizeof(int),
|
|
.mode = 0644,
|
|
.proc_handler = &proc_dointvec_minmax,
|
|
.extra1 = (int *)&nfs_set_port_min,
|
|
.extra2 = (int *)&nfs_set_port_max,
|
|
},
|
|
{
|
|
.ctl_name = CTL_UNNUMBERED,
|
|
.procname = "idmap_cache_timeout",
|
|
.data = &nfs_idmap_cache_timeout,
|
|
.maxlen = sizeof(int),
|
|
.mode = 0644,
|
|
.proc_handler = &proc_dointvec_jiffies,
|
|
.strategy = &sysctl_jiffies,
|
|
},
|
|
#endif
|
|
{
|
|
.ctl_name = CTL_UNNUMBERED,
|
|
.procname = "nfs_mountpoint_timeout",
|
|
.data = &nfs_mountpoint_expiry_timeout,
|
|
.maxlen = sizeof(nfs_mountpoint_expiry_timeout),
|
|
.mode = 0644,
|
|
.proc_handler = &proc_dointvec_jiffies,
|
|
.strategy = &sysctl_jiffies,
|
|
},
|
|
{ .ctl_name = 0 }
|
|
};
|
|
|
|
static ctl_table nfs_cb_sysctl_dir[] = {
|
|
{
|
|
.ctl_name = CTL_UNNUMBERED,
|
|
.procname = "nfs",
|
|
.mode = 0555,
|
|
.child = nfs_cb_sysctls,
|
|
},
|
|
{ .ctl_name = 0 }
|
|
};
|
|
|
|
static ctl_table nfs_cb_sysctl_root[] = {
|
|
{
|
|
.ctl_name = CTL_FS,
|
|
.procname = "fs",
|
|
.mode = 0555,
|
|
.child = nfs_cb_sysctl_dir,
|
|
},
|
|
{ .ctl_name = 0 }
|
|
};
|
|
|
|
int nfs_register_sysctl(void)
|
|
{
|
|
nfs_callback_sysctl_table = register_sysctl_table(nfs_cb_sysctl_root, 0);
|
|
if (nfs_callback_sysctl_table == NULL)
|
|
return -ENOMEM;
|
|
return 0;
|
|
}
|
|
|
|
void nfs_unregister_sysctl(void)
|
|
{
|
|
unregister_sysctl_table(nfs_callback_sysctl_table);
|
|
nfs_callback_sysctl_table = NULL;
|
|
}
|