1 /*
2  * sysctl.c - System control stuff
3  *
4  * Copyright (C) 1997 Martin von L�wis
5  * Copyright (C) 1997 R�gis Duchesne
6  */
7 
8 #include "sysctl.h"
9 
10 #ifdef DEBUG
11 #include <linux/locks.h>
12 #include <linux/sysctl.h>
13 
14 int ntdebug = 0;
15 
16 /* Add or remove the debug sysctl
17  * Is this really the only file system with sysctls ?
18  */
ntfs_sysctl(int add)19 void ntfs_sysctl(int add)
20 {
21 #define FS_NTFS             1
22 	/* Definition of the sysctl */
23 	static ctl_table ntfs_sysctls[]={
24 		{FS_NTFS,                  /* ID */
25 		 "ntfs-debug",             /* name in /proc */
26 		 &ntdebug,sizeof(ntdebug), /* data ptr, data size */
27 		 0644,                     /* mode */
28 		 0,                        /* child */
29 		 proc_dointvec,            /* proc handler */
30 		 0,                        /* strategy */
31 		 0,                        /* proc control block */
32 		 0,0},                     /* extra */
33 		{0}
34 	};
35 	/* Define the parent file : /proc/sys/fs */
36 	static ctl_table sysctls_root[]={
37 		{CTL_FS,
38 		 "fs",
39 		 NULL,0,
40 		 0555,
41 		 ntfs_sysctls},
42 		{0}
43 	};
44 	static struct ctl_table_header *sysctls_root_header = NULL;
45 
46 	if(add){
47 		if(!sysctls_root_header)
48 			sysctls_root_header = register_sysctl_table(sysctls_root, 0);
49 	} else if(sysctls_root_header) {
50 		unregister_sysctl_table(sysctls_root_header);
51 		sysctls_root_header = NULL;
52 	}
53 }
54 #endif /* DEBUG */
55 
56