sysctl.c 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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. #include <linux/sysctl.h>
  10. #include "coda_int.h"
  11. static struct ctl_table_header *fs_table_header;
  12. static ctl_table coda_table[] = {
  13. {
  14. .ctl_name = CTL_UNNUMBERED,
  15. .procname = "timeout",
  16. .data = &coda_timeout,
  17. .maxlen = sizeof(int),
  18. .mode = 0644,
  19. .proc_handler = &proc_dointvec
  20. },
  21. {
  22. .ctl_name = CTL_UNNUMBERED,
  23. .procname = "hard",
  24. .data = &coda_hard,
  25. .maxlen = sizeof(int),
  26. .mode = 0644,
  27. .proc_handler = &proc_dointvec
  28. },
  29. {
  30. .ctl_name = CTL_UNNUMBERED,
  31. .procname = "fake_statfs",
  32. .data = &coda_fake_statfs,
  33. .maxlen = sizeof(int),
  34. .mode = 0600,
  35. .proc_handler = &proc_dointvec
  36. },
  37. {}
  38. };
  39. static ctl_table fs_table[] = {
  40. {
  41. .ctl_name = CTL_UNNUMBERED,
  42. .procname = "coda",
  43. .mode = 0555,
  44. .child = coda_table
  45. },
  46. {}
  47. };
  48. void coda_sysctl_init(void)
  49. {
  50. #ifdef CONFIG_SYSCTL
  51. if ( !fs_table_header )
  52. fs_table_header = register_sysctl_table(fs_table);
  53. #endif
  54. }
  55. void coda_sysctl_clean(void)
  56. {
  57. #ifdef CONFIG_SYSCTL
  58. if ( fs_table_header ) {
  59. unregister_sysctl_table(fs_table_header);
  60. fs_table_header = NULL;
  61. }
  62. #endif
  63. }