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
15static struct ctl_table_header *nfs_callback_sysctl_table;
16
17static 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
34int 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
42void nfs_unregister_sysctl(void)
43{
44	unregister_sysctl_table(nfs_callback_sysctl_table);
45	nfs_callback_sysctl_table = NULL;
46}
47