2006-01-03 09:55:41 +01:00
/*
* 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>
2006-01-03 09:55:57 +01:00
# include <linux/nfs_idmap.h>
2006-06-09 09:34:20 -04:00
# include <linux/nfs_fs.h>
2006-01-03 09:55:41 +01:00
# include "callback.h"
2010-01-26 15:42:11 -05:00
# ifdef CONFIG_NFS_V4
2006-01-03 09:55:41 +01:00
static const int nfs_set_port_min = 0 ;
static const int nfs_set_port_max = 65535 ;
2010-01-26 15:42:11 -05:00
# endif
2006-01-03 09:55:41 +01:00
static struct ctl_table_header * nfs_callback_sysctl_table ;
static ctl_table nfs_cb_sysctls [ ] = {
# ifdef CONFIG_NFS_V4
{
. procname = " nfs_callback_tcpport " ,
. data = & nfs_callback_set_tcpport ,
. maxlen = sizeof ( int ) ,
. mode = 0644 ,
2009-11-16 03:11:48 -08:00
. proc_handler = proc_dointvec_minmax ,
2006-01-03 09:55:41 +01:00
. extra1 = ( int * ) & nfs_set_port_min ,
. extra2 = ( int * ) & nfs_set_port_max ,
} ,
2006-01-03 09:55:57 +01:00
{
. procname = " idmap_cache_timeout " ,
. data = & nfs_idmap_cache_timeout ,
. maxlen = sizeof ( int ) ,
. mode = 0644 ,
2009-11-16 03:11:48 -08:00
. proc_handler = proc_dointvec_jiffies ,
2006-01-03 09:55:57 +01:00
} ,
2006-01-03 09:55:41 +01:00
# endif
2006-06-09 09:34:20 -04:00
{
. procname = " nfs_mountpoint_timeout " ,
. data = & nfs_mountpoint_expiry_timeout ,
. maxlen = sizeof ( nfs_mountpoint_expiry_timeout ) ,
. mode = 0644 ,
2009-11-16 03:11:48 -08:00
. proc_handler = proc_dointvec_jiffies ,
2006-06-09 09:34:20 -04:00
} ,
2007-03-16 13:38:26 -08:00
{
. procname = " nfs_congestion_kb " ,
. data = & nfs_congestion_kb ,
. maxlen = sizeof ( nfs_congestion_kb ) ,
. mode = 0644 ,
2009-11-16 03:11:48 -08:00
. proc_handler = proc_dointvec ,
2007-03-16 13:38:26 -08:00
} ,
2009-11-05 14:25:10 -08:00
{ }
2006-01-03 09:55:41 +01:00
} ;
static ctl_table nfs_cb_sysctl_dir [ ] = {
{
. procname = " nfs " ,
. mode = 0555 ,
. child = nfs_cb_sysctls ,
} ,
2009-11-05 14:25:10 -08:00
{ }
2006-01-03 09:55:41 +01:00
} ;
static ctl_table nfs_cb_sysctl_root [ ] = {
{
. procname = " fs " ,
. mode = 0555 ,
. child = nfs_cb_sysctl_dir ,
} ,
2009-11-05 14:25:10 -08:00
{ }
2006-01-03 09:55:41 +01:00
} ;
int nfs_register_sysctl ( void )
{
2007-02-14 00:34:09 -08:00
nfs_callback_sysctl_table = register_sysctl_table ( nfs_cb_sysctl_root ) ;
2006-01-03 09:55:41 +01:00
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 ;
}