xref: /openbmc/linux/fs/nfs/nfs4sysctl.c (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
1b2441318SGreg Kroah-Hartman // SPDX-License-Identifier: GPL-2.0
2466bfe7fSBryan Schumaker /*
3466bfe7fSBryan Schumaker  * linux/fs/nfs/nfs4sysctl.c
4466bfe7fSBryan Schumaker  *
5466bfe7fSBryan Schumaker  * Sysctl interface to NFS v4 parameters
6466bfe7fSBryan Schumaker  *
7466bfe7fSBryan Schumaker  * Copyright (c) 2006 Trond Myklebust <Trond.Myklebust@netapp.com>
8466bfe7fSBryan Schumaker  */
9466bfe7fSBryan Schumaker #include <linux/sysctl.h>
10466bfe7fSBryan Schumaker #include <linux/nfs_fs.h>
11466bfe7fSBryan Schumaker 
1222e24309SStanislav Kinsbursky #include "nfs4_fs.h"
1340c64c26SAnna Schumaker #include "nfs4idmap.h"
14466bfe7fSBryan Schumaker #include "callback.h"
15466bfe7fSBryan Schumaker 
16ed476752SWei Tang static const int nfs_set_port_min;
17466bfe7fSBryan Schumaker static const int nfs_set_port_max = 65535;
18466bfe7fSBryan Schumaker static struct ctl_table_header *nfs4_callback_sysctl_table;
19466bfe7fSBryan Schumaker 
20f5102e56SJoe Perches static struct ctl_table nfs4_cb_sysctls[] = {
21466bfe7fSBryan Schumaker 	{
22466bfe7fSBryan Schumaker 		.procname = "nfs_callback_tcpport",
23466bfe7fSBryan Schumaker 		.data = &nfs_callback_set_tcpport,
24466bfe7fSBryan Schumaker 		.maxlen = sizeof(int),
25466bfe7fSBryan Schumaker 		.mode = 0644,
26466bfe7fSBryan Schumaker 		.proc_handler = proc_dointvec_minmax,
27466bfe7fSBryan Schumaker 		.extra1 = (int *)&nfs_set_port_min,
28466bfe7fSBryan Schumaker 		.extra2 = (int *)&nfs_set_port_max,
29466bfe7fSBryan Schumaker 	},
30466bfe7fSBryan Schumaker 	{
31466bfe7fSBryan Schumaker 		.procname = "idmap_cache_timeout",
32466bfe7fSBryan Schumaker 		.data = &nfs_idmap_cache_timeout,
33466bfe7fSBryan Schumaker 		.maxlen = sizeof(int),
34466bfe7fSBryan Schumaker 		.mode = 0644,
35cbebc6efSJan Chochol 		.proc_handler = proc_dointvec,
36466bfe7fSBryan Schumaker 	},
37466bfe7fSBryan Schumaker 	{ }
38466bfe7fSBryan Schumaker };
39466bfe7fSBryan Schumaker 
nfs4_register_sysctl(void)40466bfe7fSBryan Schumaker int nfs4_register_sysctl(void)
41466bfe7fSBryan Schumaker {
42*d2235a70SLuis Chamberlain 	nfs4_callback_sysctl_table = register_sysctl("fs/nfs",
43*d2235a70SLuis Chamberlain 						     nfs4_cb_sysctls);
44466bfe7fSBryan Schumaker 	if (nfs4_callback_sysctl_table == NULL)
45466bfe7fSBryan Schumaker 		return -ENOMEM;
46466bfe7fSBryan Schumaker 	return 0;
47466bfe7fSBryan Schumaker }
48466bfe7fSBryan Schumaker 
nfs4_unregister_sysctl(void)49466bfe7fSBryan Schumaker void nfs4_unregister_sysctl(void)
50466bfe7fSBryan Schumaker {
51466bfe7fSBryan Schumaker 	unregister_sysctl_table(nfs4_callback_sysctl_table);
52466bfe7fSBryan Schumaker 	nfs4_callback_sysctl_table = NULL;
53466bfe7fSBryan Schumaker }
54