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