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 | |
35 | int nfs_register_sysctl(void) |
36 | { |
37 | nfs_callback_sysctl_table = register_sysctl("fs/nfs" , nfs_cb_sysctls); |
38 | if (nfs_callback_sysctl_table == NULL) |
39 | return -ENOMEM; |
40 | return 0; |
41 | } |
42 | |
43 | void nfs_unregister_sysctl(void) |
44 | { |
45 | unregister_sysctl_table(table: nfs_callback_sysctl_table); |
46 | nfs_callback_sysctl_table = NULL; |
47 | } |
48 | |