b24413180f560 (Greg Kroah-Hartman 2017-11-01 15:07:57 +0100 1) // SPDX-License-Identifier: GPL-2.0
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 2) /*
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 3) * Sysctl operations for Coda filesystem
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 4) * Original version: (C) 1996 P. Braam and M. Callahan
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 5) * Rewritten for Linux 2.1. (C) 1997 Carnegie Mellon University
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 6) *
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 7) * Carnegie Mellon encourages users to contribute improvements to
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 8) * the Coda project. Contact Peter Braam (coda@cs.cmu.edu).
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 9) */
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 10)
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 11) #include <linux/sysctl.h>
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 12)
3cf01f28c303b (Jan Harkes 2007-07-19 01:48:51 -0700 13) #include "coda_int.h"
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 14)
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 15) static struct ctl_table_header *fs_table_header;
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 16)
a88bbbeef69da (Joe Perches 2014-06-06 14:38:00 -0700 17) static struct ctl_table coda_table[] = {
fd6065b4fdcb6 (Eric W. Biederman 2007-02-14 00:33:55 -0800 18) {
fd6065b4fdcb6 (Eric W. Biederman 2007-02-14 00:33:55 -0800 19) .procname = "timeout",
fd6065b4fdcb6 (Eric W. Biederman 2007-02-14 00:33:55 -0800 20) .data = &coda_timeout,
fd6065b4fdcb6 (Eric W. Biederman 2007-02-14 00:33:55 -0800 21) .maxlen = sizeof(int),
fd6065b4fdcb6 (Eric W. Biederman 2007-02-14 00:33:55 -0800 22) .mode = 0644,
6d4561110a3e9 (Eric W. Biederman 2009-11-16 03:11:48 -0800 23) .proc_handler = proc_dointvec
fd6065b4fdcb6 (Eric W. Biederman 2007-02-14 00:33:55 -0800 24) },
fd6065b4fdcb6 (Eric W. Biederman 2007-02-14 00:33:55 -0800 25) {
fd6065b4fdcb6 (Eric W. Biederman 2007-02-14 00:33:55 -0800 26) .procname = "hard",
fd6065b4fdcb6 (Eric W. Biederman 2007-02-14 00:33:55 -0800 27) .data = &coda_hard,
fd6065b4fdcb6 (Eric W. Biederman 2007-02-14 00:33:55 -0800 28) .maxlen = sizeof(int),
fd6065b4fdcb6 (Eric W. Biederman 2007-02-14 00:33:55 -0800 29) .mode = 0644,
6d4561110a3e9 (Eric W. Biederman 2009-11-16 03:11:48 -0800 30) .proc_handler = proc_dointvec
fd6065b4fdcb6 (Eric W. Biederman 2007-02-14 00:33:55 -0800 31) },
fd6065b4fdcb6 (Eric W. Biederman 2007-02-14 00:33:55 -0800 32) {
fd6065b4fdcb6 (Eric W. Biederman 2007-02-14 00:33:55 -0800 33) .procname = "fake_statfs",
fd6065b4fdcb6 (Eric W. Biederman 2007-02-14 00:33:55 -0800 34) .data = &coda_fake_statfs,
fd6065b4fdcb6 (Eric W. Biederman 2007-02-14 00:33:55 -0800 35) .maxlen = sizeof(int),
fd6065b4fdcb6 (Eric W. Biederman 2007-02-14 00:33:55 -0800 36) .mode = 0600,
6d4561110a3e9 (Eric W. Biederman 2009-11-16 03:11:48 -0800 37) .proc_handler = proc_dointvec
fd6065b4fdcb6 (Eric W. Biederman 2007-02-14 00:33:55 -0800 38) },
fd6065b4fdcb6 (Eric W. Biederman 2007-02-14 00:33:55 -0800 39) {}
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 40) };
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 41)
a88bbbeef69da (Joe Perches 2014-06-06 14:38:00 -0700 42) static struct ctl_table fs_table[] = {
fd6065b4fdcb6 (Eric W. Biederman 2007-02-14 00:33:55 -0800 43) {
fd6065b4fdcb6 (Eric W. Biederman 2007-02-14 00:33:55 -0800 44) .procname = "coda",
fd6065b4fdcb6 (Eric W. Biederman 2007-02-14 00:33:55 -0800 45) .mode = 0555,
fd6065b4fdcb6 (Eric W. Biederman 2007-02-14 00:33:55 -0800 46) .child = coda_table
fd6065b4fdcb6 (Eric W. Biederman 2007-02-14 00:33:55 -0800 47) },
fd6065b4fdcb6 (Eric W. Biederman 2007-02-14 00:33:55 -0800 48) {}
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 49) };
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 50)
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 51) void coda_sysctl_init(void)
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 52) {
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 53) if ( !fs_table_header )
0b4d414714f0d (Eric W. Biederman 2007-02-14 00:34:09 -0800 54) fs_table_header = register_sysctl_table(fs_table);
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 55) }
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 56)
3cf01f28c303b (Jan Harkes 2007-07-19 01:48:51 -0700 57) void coda_sysctl_clean(void)
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 58) {
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 59) if ( fs_table_header ) {
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 60) unregister_sysctl_table(fs_table_header);
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 61) fs_table_header = NULL;
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 62) }
^1da177e4c3f4 (Linus Torvalds 2005-04-16 15:20:36 -0700 63) }