Simplify the code a lot by killing the superflous struct se_subsystem_dev. Instead se_device is allocated early on by the backend driver, which allocates it as part of its own per-device structure, borrowing the scheme that is for example used for inode allocation. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
		
			
				
	
	
		
			25 lines
		
	
	
	
		
			518 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
	
		
			518 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef TARGET_CORE_IBLOCK_H
 | 
						|
#define TARGET_CORE_IBLOCK_H
 | 
						|
 | 
						|
#define IBLOCK_VERSION		"4.0"
 | 
						|
 | 
						|
#define IBLOCK_MAX_CDBS		16
 | 
						|
#define IBLOCK_LBA_SHIFT	9
 | 
						|
 | 
						|
struct iblock_req {
 | 
						|
	atomic_t pending;
 | 
						|
	atomic_t ib_bio_err_cnt;
 | 
						|
} ____cacheline_aligned;
 | 
						|
 | 
						|
#define IBDF_HAS_UDEV_PATH		0x01
 | 
						|
 | 
						|
struct iblock_dev {
 | 
						|
	struct se_device dev;
 | 
						|
	unsigned char ibd_udev_path[SE_UDEV_PATH_LEN];
 | 
						|
	u32	ibd_flags;
 | 
						|
	struct bio_set	*ibd_bio_set;
 | 
						|
	struct block_device *ibd_bd;
 | 
						|
	bool ibd_readonly;
 | 
						|
} ____cacheline_aligned;
 | 
						|
 | 
						|
#endif /* TARGET_CORE_IBLOCK_H */
 |