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