Branch data Line data Source code
1 : : /*
2 : : * linux/fs/nfs/nfs4sysctl.c
3 : : *
4 : : * Sysctl interface to NFS v4 parameters
5 : : *
6 : : * Copyright (c) 2006 Trond Myklebust <Trond.Myklebust@netapp.com>
7 : : */
8 : : #include <linux/sysctl.h>
9 : : #include <linux/nfs_idmap.h>
10 : : #include <linux/nfs_fs.h>
11 : :
12 : : #include "nfs4_fs.h"
13 : : #include "callback.h"
14 : :
15 : : static const int nfs_set_port_min = 0;
16 : : static const int nfs_set_port_max = 65535;
17 : : static struct ctl_table_header *nfs4_callback_sysctl_table;
18 : :
19 : : static ctl_table nfs4_cb_sysctls[] = {
20 : : {
21 : : .procname = "nfs_callback_tcpport",
22 : : .data = &nfs_callback_set_tcpport,
23 : : .maxlen = sizeof(int),
24 : : .mode = 0644,
25 : : .proc_handler = proc_dointvec_minmax,
26 : : .extra1 = (int *)&nfs_set_port_min,
27 : : .extra2 = (int *)&nfs_set_port_max,
28 : : },
29 : : {
30 : : .procname = "idmap_cache_timeout",
31 : : .data = &nfs_idmap_cache_timeout,
32 : : .maxlen = sizeof(int),
33 : : .mode = 0644,
34 : : .proc_handler = proc_dointvec_jiffies,
35 : : },
36 : : { }
37 : : };
38 : :
39 : : static ctl_table nfs4_cb_sysctl_dir[] = {
40 : : {
41 : : .procname = "nfs",
42 : : .mode = 0555,
43 : : .child = nfs4_cb_sysctls,
44 : : },
45 : : { }
46 : : };
47 : :
48 : : static ctl_table nfs4_cb_sysctl_root[] = {
49 : : {
50 : : .procname = "fs",
51 : : .mode = 0555,
52 : : .child = nfs4_cb_sysctl_dir,
53 : : },
54 : : { }
55 : : };
56 : :
57 : 0 : int nfs4_register_sysctl(void)
58 : : {
59 : 0 : nfs4_callback_sysctl_table = register_sysctl_table(nfs4_cb_sysctl_root);
60 [ # # ]: 0 : if (nfs4_callback_sysctl_table == NULL)
61 : : return -ENOMEM;
62 : 0 : return 0;
63 : : }
64 : :
65 : 0 : void nfs4_unregister_sysctl(void)
66 : : {
67 : 0 : unregister_sysctl_table(nfs4_callback_sysctl_table);
68 : 0 : nfs4_callback_sysctl_table = NULL;
69 : 0 : }
|