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 | int 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 | |
42 | void nfs_unregister_sysctl(void) |
43 | { |
44 | unregister_sysctl_table(table: nfs_callback_sysctl_table); |
45 | nfs_callback_sysctl_table = NULL; |
46 | } |
47 | |