| Bryan Schumaker | 466bfe7 | 2012-07-16 16:39:14 -0400 | [diff] [blame] | 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 |  | 
| Stanislav Kinsbursky | 22e24309 | 2012-10-02 14:19:09 +0400 | [diff] [blame] | 12 | #include "nfs4_fs.h" | 
| Bryan Schumaker | 466bfe7 | 2012-07-16 16:39:14 -0400 | [diff] [blame] | 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 | int nfs4_register_sysctl(void) | 
|  | 58 | { | 
|  | 59 | nfs4_callback_sysctl_table = register_sysctl_table(nfs4_cb_sysctl_root); | 
|  | 60 | if (nfs4_callback_sysctl_table == NULL) | 
|  | 61 | return -ENOMEM; | 
|  | 62 | return 0; | 
|  | 63 | } | 
|  | 64 |  | 
|  | 65 | void nfs4_unregister_sysctl(void) | 
|  | 66 | { | 
|  | 67 | unregister_sysctl_table(nfs4_callback_sysctl_table); | 
|  | 68 | nfs4_callback_sysctl_table = NULL; | 
|  | 69 | } |