123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- // SPDX-License-Identifier: GPL-2.0-or-later
- /*
- * sysctl.c - Code for sysctl handling in NTFS Linux kernel driver. Part of
- * the Linux-NTFS project. Adapted from the old NTFS driver,
- * Copyright (C) 1997 Martin von Löwis, Régis Duchesne
- *
- * Copyright (c) 2002-2005 Anton Altaparmakov
- */
- #ifdef DEBUG
- #include <linux/module.h>
- #ifdef CONFIG_SYSCTL
- #include <linux/proc_fs.h>
- #include <linux/sysctl.h>
- #include "sysctl.h"
- #include "debug.h"
- /* Definition of the ntfs sysctl. */
- static struct ctl_table ntfs_sysctls[] = {
- {
- .procname = "ntfs-debug",
- .data = &debug_msgs, /* Data pointer and size. */
- .maxlen = sizeof(debug_msgs),
- .mode = 0644, /* Mode, proc handler. */
- .proc_handler = proc_dointvec
- },
- {}
- };
- /* Define the parent directory /proc/sys/fs. */
- static struct ctl_table sysctls_root[] = {
- {
- .procname = "fs",
- .mode = 0555,
- .child = ntfs_sysctls
- },
- {}
- };
- /* Storage for the sysctls header. */
- static struct ctl_table_header *sysctls_root_table;
- /**
- * ntfs_sysctl - add or remove the debug sysctl
- * @add: add (1) or remove (0) the sysctl
- *
- * Add or remove the debug sysctl. Return 0 on success or -errno on error.
- */
- int ntfs_sysctl(int add)
- {
- if (add) {
- BUG_ON(sysctls_root_table);
- sysctls_root_table = register_sysctl_table(sysctls_root);
- if (!sysctls_root_table)
- return -ENOMEM;
- } else {
- BUG_ON(!sysctls_root_table);
- unregister_sysctl_table(sysctls_root_table);
- sysctls_root_table = NULL;
- }
- return 0;
- }
- #endif /* CONFIG_SYSCTL */
- #endif /* DEBUG */
|