162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Sysctl operations for Coda filesystem
462306a36Sopenharmony_ci * Original version: (C) 1996 P. Braam and M. Callahan
562306a36Sopenharmony_ci * Rewritten for Linux 2.1. (C) 1997 Carnegie Mellon University
662306a36Sopenharmony_ci *
762306a36Sopenharmony_ci * Carnegie Mellon encourages users to contribute improvements to
862306a36Sopenharmony_ci * the Coda project. Contact Peter Braam (coda@cs.cmu.edu).
962306a36Sopenharmony_ci */
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#include <linux/sysctl.h>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci#include "coda_int.h"
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_cistatic struct ctl_table_header *fs_table_header;
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_cistatic struct ctl_table coda_table[] = {
1862306a36Sopenharmony_ci	{
1962306a36Sopenharmony_ci		.procname	= "timeout",
2062306a36Sopenharmony_ci		.data		= &coda_timeout,
2162306a36Sopenharmony_ci		.maxlen		= sizeof(int),
2262306a36Sopenharmony_ci		.mode		= 0644,
2362306a36Sopenharmony_ci		.proc_handler	= proc_dointvec
2462306a36Sopenharmony_ci	},
2562306a36Sopenharmony_ci	{
2662306a36Sopenharmony_ci		.procname	= "hard",
2762306a36Sopenharmony_ci		.data		= &coda_hard,
2862306a36Sopenharmony_ci		.maxlen		= sizeof(int),
2962306a36Sopenharmony_ci		.mode		= 0644,
3062306a36Sopenharmony_ci		.proc_handler	= proc_dointvec
3162306a36Sopenharmony_ci	},
3262306a36Sopenharmony_ci	{
3362306a36Sopenharmony_ci		.procname	= "fake_statfs",
3462306a36Sopenharmony_ci		.data		= &coda_fake_statfs,
3562306a36Sopenharmony_ci		.maxlen		= sizeof(int),
3662306a36Sopenharmony_ci		.mode		= 0600,
3762306a36Sopenharmony_ci		.proc_handler	= proc_dointvec
3862306a36Sopenharmony_ci	},
3962306a36Sopenharmony_ci	{}
4062306a36Sopenharmony_ci};
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_civoid coda_sysctl_init(void)
4362306a36Sopenharmony_ci{
4462306a36Sopenharmony_ci	if ( !fs_table_header )
4562306a36Sopenharmony_ci		fs_table_header = register_sysctl("coda", coda_table);
4662306a36Sopenharmony_ci}
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_civoid coda_sysctl_clean(void)
4962306a36Sopenharmony_ci{
5062306a36Sopenharmony_ci	if ( fs_table_header ) {
5162306a36Sopenharmony_ci		unregister_sysctl_table(fs_table_header);
5262306a36Sopenharmony_ci		fs_table_header = NULL;
5362306a36Sopenharmony_ci	}
5462306a36Sopenharmony_ci}
55