xref: /linux/fs/ntfs/sysctl.c (revision cdd4dc3aebeab43a72ce0bc2b5bab6f0a80b97a5)
11e9ea7e0SNamjae Jeon // SPDX-License-Identifier: GPL-2.0-or-later
21e9ea7e0SNamjae Jeon /*
35218cd10SNamjae Jeon  * Code for sysctl handling in NTFS Linux kernel driver.
41e9ea7e0SNamjae Jeon  *
55218cd10SNamjae Jeon  * Copyright (C) 1997 Martin von Löwis, Régis Duchesne
61e9ea7e0SNamjae Jeon  * Copyright (c) 2002-2005 Anton Altaparmakov
71e9ea7e0SNamjae Jeon  */
81e9ea7e0SNamjae Jeon 
91e9ea7e0SNamjae Jeon #ifdef DEBUG
101e9ea7e0SNamjae Jeon 
111e9ea7e0SNamjae Jeon #include <linux/module.h>
121e9ea7e0SNamjae Jeon 
131e9ea7e0SNamjae Jeon #ifdef CONFIG_SYSCTL
141e9ea7e0SNamjae Jeon 
151e9ea7e0SNamjae Jeon #include <linux/proc_fs.h>
161e9ea7e0SNamjae Jeon #include <linux/sysctl.h>
171e9ea7e0SNamjae Jeon 
181e9ea7e0SNamjae Jeon #include "sysctl.h"
191e9ea7e0SNamjae Jeon #include "debug.h"
201e9ea7e0SNamjae Jeon 
211e9ea7e0SNamjae Jeon /* Definition of the ntfs sysctl. */
225218cd10SNamjae Jeon static const struct ctl_table ntfs_sysctls[] = {
231e9ea7e0SNamjae Jeon 	{
241e9ea7e0SNamjae Jeon 		.procname	= "ntfs-debug",
251e9ea7e0SNamjae Jeon 		.data		= &debug_msgs,		/* Data pointer and size. */
261e9ea7e0SNamjae Jeon 		.maxlen		= sizeof(debug_msgs),
271e9ea7e0SNamjae Jeon 		.mode		= 0644,			/* Mode, proc handler. */
281e9ea7e0SNamjae Jeon 		.proc_handler	= proc_dointvec
291e9ea7e0SNamjae Jeon 	},
301e9ea7e0SNamjae Jeon };
311e9ea7e0SNamjae Jeon 
321e9ea7e0SNamjae Jeon /* Storage for the sysctls header. */
331e9ea7e0SNamjae Jeon static struct ctl_table_header *sysctls_root_table;
341e9ea7e0SNamjae Jeon 
355218cd10SNamjae Jeon /*
361e9ea7e0SNamjae Jeon  * ntfs_sysctl - add or remove the debug sysctl
371e9ea7e0SNamjae Jeon  * @add:	add (1) or remove (0) the sysctl
381e9ea7e0SNamjae Jeon  *
391e9ea7e0SNamjae Jeon  * Add or remove the debug sysctl. Return 0 on success or -errno on error.
401e9ea7e0SNamjae Jeon  */
411e9ea7e0SNamjae Jeon int ntfs_sysctl(int add)
421e9ea7e0SNamjae Jeon {
431e9ea7e0SNamjae Jeon 	if (add) {
44*a8fde8beSNamjae Jeon 		sysctls_root_table = register_sysctl("fs/ntfs", ntfs_sysctls);
451e9ea7e0SNamjae Jeon 		if (!sysctls_root_table)
461e9ea7e0SNamjae Jeon 			return -ENOMEM;
471e9ea7e0SNamjae Jeon 	} else {
481e9ea7e0SNamjae Jeon 		unregister_sysctl_table(sysctls_root_table);
491e9ea7e0SNamjae Jeon 		sysctls_root_table = NULL;
501e9ea7e0SNamjae Jeon 	}
511e9ea7e0SNamjae Jeon 	return 0;
521e9ea7e0SNamjae Jeon }
531e9ea7e0SNamjae Jeon #endif /* CONFIG_SYSCTL */
541e9ea7e0SNamjae Jeon #endif /* DEBUG */
55