xref: /linux/fs/nfs/sysctl.c (revision db624e82c55f227b84ac9ebfa3de2f6f5fad666b)
1  // SPDX-License-Identifier: GPL-2.0
2  /*
3   * linux/fs/nfs/sysctl.c
4   *
5   * Sysctl interface to NFS parameters
6   */
7  #include <linux/types.h>
8  #include <linux/linkage.h>
9  #include <linux/ctype.h>
10  #include <linux/fs.h>
11  #include <linux/sysctl.h>
12  #include <linux/module.h>
13  #include <linux/nfs_fs.h>
14  
15  static struct ctl_table_header *nfs_callback_sysctl_table;
16  
17  static struct ctl_table nfs_cb_sysctls[] = {
18  	{
19  		.procname	= "nfs_mountpoint_timeout",
20  		.data		= &nfs_mountpoint_expiry_timeout,
21  		.maxlen		= sizeof(nfs_mountpoint_expiry_timeout),
22  		.mode		= 0644,
23  		.proc_handler	= proc_dointvec_jiffies,
24  	},
25  	{
26  		.procname	= "nfs_congestion_kb",
27  		.data		= &nfs_congestion_kb,
28  		.maxlen		= sizeof(nfs_congestion_kb),
29  		.mode		= 0644,
30  		.proc_handler	= proc_dointvec,
31  	},
32  };
33  
34  int nfs_register_sysctl(void)
35  {
36  	nfs_callback_sysctl_table = register_sysctl("fs/nfs", nfs_cb_sysctls);
37  	if (nfs_callback_sysctl_table == NULL)
38  		return -ENOMEM;
39  	return 0;
40  }
41  
42  void nfs_unregister_sysctl(void)
43  {
44  	unregister_sysctl_table(nfs_callback_sysctl_table);
45  	nfs_callback_sysctl_table = NULL;
46  }
47