This driver can be loaded as an overlay on top of a real block device, and can then be used to generate block-level failures for certain transfer requests. Specifically, a rule-based system allows the user to introduce (overt and silent) data corruption and errors. It exposes itself through /dev/fbd, and a file system can be mounted on top of it. The new fbdctl(8) tool can be used to control the driver; see ``man fbdctl'' for details. It also comes with a test set, located in test/fbdtest.
		
			
				
	
	
		
			13 lines
		
	
	
		
			408 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			13 lines
		
	
	
		
			408 B
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef _FBD_ACTION_H
 | 
						|
#define _FBD_ACTION_H
 | 
						|
 | 
						|
extern int action_mask(struct fbd_rule *rule);
 | 
						|
 | 
						|
extern void action_pre_hook(struct fbd_rule *rule, iovec_t *iov,
 | 
						|
	unsigned *count, size_t *size, u64_t *pos);
 | 
						|
extern void action_io_hook(struct fbd_rule *rule, char *buf, size_t size,
 | 
						|
	u64_t pos, int flag);
 | 
						|
extern void action_post_hook(struct fbd_rule *rule, size_t osize, int *result);
 | 
						|
 | 
						|
#endif /* _FBD_ACTION_H */
 |