18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Sysctl operations for Coda filesystem 48c2ecf20Sopenharmony_ci * Original version: (C) 1996 P. Braam and M. Callahan 58c2ecf20Sopenharmony_ci * Rewritten for Linux 2.1. (C) 1997 Carnegie Mellon University 68c2ecf20Sopenharmony_ci * 78c2ecf20Sopenharmony_ci * Carnegie Mellon encourages users to contribute improvements to 88c2ecf20Sopenharmony_ci * the Coda project. Contact Peter Braam (coda@cs.cmu.edu). 98c2ecf20Sopenharmony_ci */ 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci#include <linux/sysctl.h> 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ci#include "coda_int.h" 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_cistatic struct ctl_table_header *fs_table_header; 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_cistatic struct ctl_table coda_table[] = { 188c2ecf20Sopenharmony_ci { 198c2ecf20Sopenharmony_ci .procname = "timeout", 208c2ecf20Sopenharmony_ci .data = &coda_timeout, 218c2ecf20Sopenharmony_ci .maxlen = sizeof(int), 228c2ecf20Sopenharmony_ci .mode = 0644, 238c2ecf20Sopenharmony_ci .proc_handler = proc_dointvec 248c2ecf20Sopenharmony_ci }, 258c2ecf20Sopenharmony_ci { 268c2ecf20Sopenharmony_ci .procname = "hard", 278c2ecf20Sopenharmony_ci .data = &coda_hard, 288c2ecf20Sopenharmony_ci .maxlen = sizeof(int), 298c2ecf20Sopenharmony_ci .mode = 0644, 308c2ecf20Sopenharmony_ci .proc_handler = proc_dointvec 318c2ecf20Sopenharmony_ci }, 328c2ecf20Sopenharmony_ci { 338c2ecf20Sopenharmony_ci .procname = "fake_statfs", 348c2ecf20Sopenharmony_ci .data = &coda_fake_statfs, 358c2ecf20Sopenharmony_ci .maxlen = sizeof(int), 368c2ecf20Sopenharmony_ci .mode = 0600, 378c2ecf20Sopenharmony_ci .proc_handler = proc_dointvec 388c2ecf20Sopenharmony_ci }, 398c2ecf20Sopenharmony_ci {} 408c2ecf20Sopenharmony_ci}; 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_cistatic struct ctl_table fs_table[] = { 438c2ecf20Sopenharmony_ci { 448c2ecf20Sopenharmony_ci .procname = "coda", 458c2ecf20Sopenharmony_ci .mode = 0555, 468c2ecf20Sopenharmony_ci .child = coda_table 478c2ecf20Sopenharmony_ci }, 488c2ecf20Sopenharmony_ci {} 498c2ecf20Sopenharmony_ci}; 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_civoid coda_sysctl_init(void) 528c2ecf20Sopenharmony_ci{ 538c2ecf20Sopenharmony_ci if ( !fs_table_header ) 548c2ecf20Sopenharmony_ci fs_table_header = register_sysctl_table(fs_table); 558c2ecf20Sopenharmony_ci} 568c2ecf20Sopenharmony_ci 578c2ecf20Sopenharmony_civoid coda_sysctl_clean(void) 588c2ecf20Sopenharmony_ci{ 598c2ecf20Sopenharmony_ci if ( fs_table_header ) { 608c2ecf20Sopenharmony_ci unregister_sysctl_table(fs_table_header); 618c2ecf20Sopenharmony_ci fs_table_header = NULL; 628c2ecf20Sopenharmony_ci } 638c2ecf20Sopenharmony_ci} 64