1 /* 2 * Sysctl operations for Coda filesystem 3 * Original version: (C) 1996 P. Braam and M. Callahan 4 * Rewritten for Linux 2.1. (C) 1997 Carnegie Mellon University 5 * 6 * Carnegie Mellon encourages users to contribute improvements to 7 * the Coda project. Contact Peter Braam (coda@cs.cmu.edu). 8 */ 9 10 #include <linux/sysctl.h> 11 12 #include "coda_int.h" 13 14 static struct ctl_table_header *fs_table_header; 15 16 static ctl_table coda_table[] = { 17 { 18 .ctl_name = CTL_UNNUMBERED, 19 .procname = "timeout", 20 .data = &coda_timeout, 21 .maxlen = sizeof(int), 22 .mode = 0644, 23 .proc_handler = &proc_dointvec 24 }, 25 { 26 .ctl_name = CTL_UNNUMBERED, 27 .procname = "hard", 28 .data = &coda_hard, 29 .maxlen = sizeof(int), 30 .mode = 0644, 31 .proc_handler = &proc_dointvec 32 }, 33 { 34 .ctl_name = CTL_UNNUMBERED, 35 .procname = "fake_statfs", 36 .data = &coda_fake_statfs, 37 .maxlen = sizeof(int), 38 .mode = 0600, 39 .proc_handler = &proc_dointvec 40 }, 41 {} 42 }; 43 44 static ctl_table fs_table[] = { 45 { 46 .ctl_name = CTL_UNNUMBERED, 47 .procname = "coda", 48 .mode = 0555, 49 .child = coda_table 50 }, 51 {} 52 }; 53 54 55 void coda_sysctl_init(void) 56 { 57 #ifdef CONFIG_SYSCTL 58 if ( !fs_table_header ) 59 fs_table_header = register_sysctl_table(fs_table); 60 #endif 61 } 62 63 void coda_sysctl_clean(void) 64 { 65 #ifdef CONFIG_SYSCTL 66 if ( fs_table_header ) { 67 unregister_sysctl_table(fs_table_header); 68 fs_table_header = NULL; 69 } 70 #endif 71 } 72