| // SPDX-License-Identifier: GPL-2.0-or-later |
| /* Error injection handling. |
| * |
| * Copyright (C) 2021 Red Hat, Inc. All Rights Reserved. |
| * Written by David Howells (dhowells@redhat.com) |
| */ |
| |
| #include <linux/sysctl.h> |
| #include "internal.h" |
| |
| unsigned int cachefiles_error_injection_state; |
| |
| static struct ctl_table_header *cachefiles_sysctl; |
| static struct ctl_table cachefiles_sysctls[] = { |
| { |
| .procname = "error_injection", |
| .data = &cachefiles_error_injection_state, |
| .maxlen = sizeof(unsigned int), |
| .mode = 0644, |
| .proc_handler = proc_douintvec, |
| }, |
| {} |
| }; |
| |
| int __init cachefiles_register_error_injection(void) |
| { |
| cachefiles_sysctl = register_sysctl("cachefiles", cachefiles_sysctls); |
| if (!cachefiles_sysctl) |
| return -ENOMEM; |
| return 0; |
| |
| } |
| |
| void cachefiles_unregister_error_injection(void) |
| { |
| unregister_sysctl_table(cachefiles_sysctl); |
| } |