GNU Linux-libre 5.19-rc6-gnu
[releases.git] / fs / cachefiles / error_inject.c
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /* Error injection handling.
3  *
4  * Copyright (C) 2021 Red Hat, Inc. All Rights Reserved.
5  * Written by David Howells (dhowells@redhat.com)
6  */
7
8 #include <linux/sysctl.h>
9 #include "internal.h"
10
11 unsigned int cachefiles_error_injection_state;
12
13 static struct ctl_table_header *cachefiles_sysctl;
14 static struct ctl_table cachefiles_sysctls[] = {
15         {
16                 .procname       = "error_injection",
17                 .data           = &cachefiles_error_injection_state,
18                 .maxlen         = sizeof(unsigned int),
19                 .mode           = 0644,
20                 .proc_handler   = proc_douintvec,
21         },
22         {}
23 };
24
25 static struct ctl_table cachefiles_sysctls_root[] = {
26         {
27                 .procname       = "cachefiles",
28                 .mode           = 0555,
29                 .child          = cachefiles_sysctls,
30         },
31         {}
32 };
33
34 int __init cachefiles_register_error_injection(void)
35 {
36         cachefiles_sysctl = register_sysctl_table(cachefiles_sysctls_root);
37         if (!cachefiles_sysctl)
38                 return -ENOMEM;
39         return 0;
40
41 }
42
43 void cachefiles_unregister_error_injection(void)
44 {
45         unregister_sysctl_table(cachefiles_sysctl);
46 }