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>
2006-06-09 17:34:20 +04:00
# include <linux/nfs_fs.h>
2006-01-03 11:55:41 +03:00
static struct ctl_table_header * nfs_callback_sysctl_table ;
2014-06-07 01:38:03 +04:00
static struct ctl_table nfs_cb_sysctls [ ] = {
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
} ;
2014-06-07 01:38:03 +04:00
static struct ctl_table nfs_cb_sysctl_dir [ ] = {
2006-01-03 11:55:41 +03:00
{
. procname = " nfs " ,
. mode = 0555 ,
. child = nfs_cb_sysctls ,
} ,
2009-11-06 01:25:10 +03:00
{ }
2006-01-03 11:55:41 +03:00
} ;
2014-06-07 01:38:03 +04:00
static struct ctl_table nfs_cb_sysctl_root [ ] = {
2006-01-03 11:55:41 +03:00
{
. 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 ;
}