| 1 | |
| 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 const 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(nfs_callback_sysctl_table);
|
| 45 | nfs_callback_sysctl_table = NULL;
|
| 46 | }
|