26 lines
		
	
	
		
			653 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			653 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0 */
 | |
| #include <linux/atomic.h>
 | |
| #include <linux/debugfs.h>
 | |
| #include <linux/notifier.h>
 | |
| 
 | |
| struct notifier_err_inject_action {
 | |
| 	unsigned long val;
 | |
| 	int error;
 | |
| 	const char *name;
 | |
| };
 | |
| 
 | |
| #define NOTIFIER_ERR_INJECT_ACTION(action)	\
 | |
| 	.name = #action, .val = (action),
 | |
| 
 | |
| struct notifier_err_inject {
 | |
| 	struct notifier_block nb;
 | |
| 	struct notifier_err_inject_action actions[];
 | |
| 	/* The last slot must be terminated with zero sentinel */
 | |
| };
 | |
| 
 | |
| extern struct dentry *notifier_err_inject_dir;
 | |
| 
 | |
| extern struct dentry *notifier_err_inject_init(const char *name,
 | |
| 		struct dentry *parent, struct notifier_err_inject *err_inject,
 | |
| 		int priority);
 |