| 
									
										
											  
											
												[SCSI] target: Add LIO target core v4.0.0-rc6
LIO target is a full featured in-kernel target framework with the
following feature set:
High-performance, non-blocking, multithreaded architecture with SIMD
support.
Advanced SCSI feature set:
    * Persistent Reservations (PRs)
    * Asymmetric Logical Unit Assignment (ALUA)
    * Protocol and intra-nexus multiplexing, load-balancing and failover (MC/S)
    * Full Error Recovery (ERL=0,1,2)
    * Active/active task migration and session continuation (ERL=2)
    * Thin LUN provisioning (UNMAP and WRITE_SAMExx)
Multiprotocol target plugins
Storage media independence:
    * Virtualization of all storage media; transparent mapping of IO to LUNs
    * No hard limits on number of LUNs per Target; maximum LUN size ~750 TB
    * Backstores: SATA, SAS, SCSI, BluRay, DVD, FLASH, USB, ramdisk, etc.
Standards compliance:
    * Full compliance with IETF (RFC 3720)
    * Full implementation of SPC-4 PRs and ALUA
Significant code cleanups done by Christoph Hellwig.
[jejb: fix up for new block bdev exclusive interface. Minor fixes from
 Randy Dunlap and Dan Carpenter.]
Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
											
										 
											2010-12-17 11:11:26 -08:00
										 |  |  | #define TARGET_CORE_CONFIGFS_VERSION TARGET_CORE_MOD_VERSION
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define TARGET_CORE_CONFIG_ROOT	"/sys/kernel/config"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define TARGET_CORE_NAME_MAX_LEN	64
 | 
					
						
							|  |  |  | #define TARGET_FABRIC_NAME_SIZE		32
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern struct target_fabric_configfs *target_fabric_configfs_init( | 
					
						
							|  |  |  | 				struct module *, const char *); | 
					
						
							|  |  |  | extern void target_fabric_configfs_free(struct target_fabric_configfs *); | 
					
						
							|  |  |  | extern int target_fabric_configfs_register(struct target_fabric_configfs *); | 
					
						
							|  |  |  | extern void target_fabric_configfs_deregister(struct target_fabric_configfs *); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct target_fabric_configfs_template { | 
					
						
							|  |  |  | 	struct config_item_type tfc_discovery_cit; | 
					
						
							|  |  |  | 	struct config_item_type	tfc_wwn_cit; | 
					
						
							| 
									
										
										
										
											2011-03-14 04:06:11 -07:00
										 |  |  | 	struct config_item_type tfc_wwn_fabric_stats_cit; | 
					
						
							| 
									
										
											  
											
												[SCSI] target: Add LIO target core v4.0.0-rc6
LIO target is a full featured in-kernel target framework with the
following feature set:
High-performance, non-blocking, multithreaded architecture with SIMD
support.
Advanced SCSI feature set:
    * Persistent Reservations (PRs)
    * Asymmetric Logical Unit Assignment (ALUA)
    * Protocol and intra-nexus multiplexing, load-balancing and failover (MC/S)
    * Full Error Recovery (ERL=0,1,2)
    * Active/active task migration and session continuation (ERL=2)
    * Thin LUN provisioning (UNMAP and WRITE_SAMExx)
Multiprotocol target plugins
Storage media independence:
    * Virtualization of all storage media; transparent mapping of IO to LUNs
    * No hard limits on number of LUNs per Target; maximum LUN size ~750 TB
    * Backstores: SATA, SAS, SCSI, BluRay, DVD, FLASH, USB, ramdisk, etc.
Standards compliance:
    * Full compliance with IETF (RFC 3720)
    * Full implementation of SPC-4 PRs and ALUA
Significant code cleanups done by Christoph Hellwig.
[jejb: fix up for new block bdev exclusive interface. Minor fixes from
 Randy Dunlap and Dan Carpenter.]
Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
											
										 
											2010-12-17 11:11:26 -08:00
										 |  |  | 	struct config_item_type tfc_tpg_cit; | 
					
						
							|  |  |  | 	struct config_item_type tfc_tpg_base_cit; | 
					
						
							|  |  |  | 	struct config_item_type tfc_tpg_lun_cit; | 
					
						
							|  |  |  | 	struct config_item_type tfc_tpg_port_cit; | 
					
						
							| 
									
										
										
										
											2011-03-14 04:06:11 -07:00
										 |  |  | 	struct config_item_type tfc_tpg_port_stat_cit; | 
					
						
							| 
									
										
											  
											
												[SCSI] target: Add LIO target core v4.0.0-rc6
LIO target is a full featured in-kernel target framework with the
following feature set:
High-performance, non-blocking, multithreaded architecture with SIMD
support.
Advanced SCSI feature set:
    * Persistent Reservations (PRs)
    * Asymmetric Logical Unit Assignment (ALUA)
    * Protocol and intra-nexus multiplexing, load-balancing and failover (MC/S)
    * Full Error Recovery (ERL=0,1,2)
    * Active/active task migration and session continuation (ERL=2)
    * Thin LUN provisioning (UNMAP and WRITE_SAMExx)
Multiprotocol target plugins
Storage media independence:
    * Virtualization of all storage media; transparent mapping of IO to LUNs
    * No hard limits on number of LUNs per Target; maximum LUN size ~750 TB
    * Backstores: SATA, SAS, SCSI, BluRay, DVD, FLASH, USB, ramdisk, etc.
Standards compliance:
    * Full compliance with IETF (RFC 3720)
    * Full implementation of SPC-4 PRs and ALUA
Significant code cleanups done by Christoph Hellwig.
[jejb: fix up for new block bdev exclusive interface. Minor fixes from
 Randy Dunlap and Dan Carpenter.]
Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
											
										 
											2010-12-17 11:11:26 -08:00
										 |  |  | 	struct config_item_type tfc_tpg_np_cit; | 
					
						
							|  |  |  | 	struct config_item_type tfc_tpg_np_base_cit; | 
					
						
							|  |  |  | 	struct config_item_type tfc_tpg_attrib_cit; | 
					
						
							|  |  |  | 	struct config_item_type tfc_tpg_param_cit; | 
					
						
							|  |  |  | 	struct config_item_type tfc_tpg_nacl_cit; | 
					
						
							|  |  |  | 	struct config_item_type tfc_tpg_nacl_base_cit; | 
					
						
							|  |  |  | 	struct config_item_type tfc_tpg_nacl_attrib_cit; | 
					
						
							|  |  |  | 	struct config_item_type tfc_tpg_nacl_auth_cit; | 
					
						
							|  |  |  | 	struct config_item_type tfc_tpg_nacl_param_cit; | 
					
						
							| 
									
										
										
										
											2011-03-14 04:06:11 -07:00
										 |  |  | 	struct config_item_type tfc_tpg_nacl_stat_cit; | 
					
						
							| 
									
										
											  
											
												[SCSI] target: Add LIO target core v4.0.0-rc6
LIO target is a full featured in-kernel target framework with the
following feature set:
High-performance, non-blocking, multithreaded architecture with SIMD
support.
Advanced SCSI feature set:
    * Persistent Reservations (PRs)
    * Asymmetric Logical Unit Assignment (ALUA)
    * Protocol and intra-nexus multiplexing, load-balancing and failover (MC/S)
    * Full Error Recovery (ERL=0,1,2)
    * Active/active task migration and session continuation (ERL=2)
    * Thin LUN provisioning (UNMAP and WRITE_SAMExx)
Multiprotocol target plugins
Storage media independence:
    * Virtualization of all storage media; transparent mapping of IO to LUNs
    * No hard limits on number of LUNs per Target; maximum LUN size ~750 TB
    * Backstores: SATA, SAS, SCSI, BluRay, DVD, FLASH, USB, ramdisk, etc.
Standards compliance:
    * Full compliance with IETF (RFC 3720)
    * Full implementation of SPC-4 PRs and ALUA
Significant code cleanups done by Christoph Hellwig.
[jejb: fix up for new block bdev exclusive interface. Minor fixes from
 Randy Dunlap and Dan Carpenter.]
Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
											
										 
											2010-12-17 11:11:26 -08:00
										 |  |  | 	struct config_item_type tfc_tpg_mappedlun_cit; | 
					
						
							| 
									
										
										
										
											2011-03-14 04:06:11 -07:00
										 |  |  | 	struct config_item_type tfc_tpg_mappedlun_stat_cit; | 
					
						
							| 
									
										
											  
											
												[SCSI] target: Add LIO target core v4.0.0-rc6
LIO target is a full featured in-kernel target framework with the
following feature set:
High-performance, non-blocking, multithreaded architecture with SIMD
support.
Advanced SCSI feature set:
    * Persistent Reservations (PRs)
    * Asymmetric Logical Unit Assignment (ALUA)
    * Protocol and intra-nexus multiplexing, load-balancing and failover (MC/S)
    * Full Error Recovery (ERL=0,1,2)
    * Active/active task migration and session continuation (ERL=2)
    * Thin LUN provisioning (UNMAP and WRITE_SAMExx)
Multiprotocol target plugins
Storage media independence:
    * Virtualization of all storage media; transparent mapping of IO to LUNs
    * No hard limits on number of LUNs per Target; maximum LUN size ~750 TB
    * Backstores: SATA, SAS, SCSI, BluRay, DVD, FLASH, USB, ramdisk, etc.
Standards compliance:
    * Full compliance with IETF (RFC 3720)
    * Full implementation of SPC-4 PRs and ALUA
Significant code cleanups done by Christoph Hellwig.
[jejb: fix up for new block bdev exclusive interface. Minor fixes from
 Randy Dunlap and Dan Carpenter.]
Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
											
										 
											2010-12-17 11:11:26 -08:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct target_fabric_configfs { | 
					
						
							|  |  |  | 	char			tf_name[TARGET_FABRIC_NAME_SIZE]; | 
					
						
							|  |  |  | 	atomic_t		tf_access_cnt; | 
					
						
							|  |  |  | 	struct list_head	tf_list; | 
					
						
							|  |  |  | 	struct config_group	tf_group; | 
					
						
							|  |  |  | 	struct config_group	tf_disc_group; | 
					
						
							|  |  |  | 	struct config_group	*tf_default_groups[2]; | 
					
						
							|  |  |  | 	/* Pointer to fabric's config_item */ | 
					
						
							|  |  |  | 	struct config_item	*tf_fabric; | 
					
						
							|  |  |  | 	/* Passed from fabric modules */ | 
					
						
							|  |  |  | 	struct config_item_type	*tf_fabric_cit; | 
					
						
							|  |  |  | 	/* Pointer to target core subsystem */ | 
					
						
							|  |  |  | 	struct configfs_subsystem *tf_subsys; | 
					
						
							|  |  |  | 	/* Pointer to fabric's struct module */ | 
					
						
							|  |  |  | 	struct module *tf_module; | 
					
						
							|  |  |  | 	struct target_core_fabric_ops tf_ops; | 
					
						
							|  |  |  | 	struct target_fabric_configfs_template tf_cit_tmpl; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define TF_CIT_TMPL(tf) (&(tf)->tf_cit_tmpl)
 |