linux/drivers/target
Nicholas Bellinger 4cc987eaff target: Drop lun_sep_lock for se_lun->lun_se_dev RCU usage
With se_port and t10_alua_tg_pt_gp_member being absored into se_lun,
there is no need for an extra lock to protect se_lun->lun_se_dev
assignment.

This patch also converts backend drivers to use call_rcu() release
to allow any se_device readers to complete.  The call_rcu() instead
of kfree_rcu() is required here because se_device is embedded into
the backend driver specific structure.

Also, convert se_lun->lun_stats to use atomic_long_t within the
target_complete_ok_work() completion callback, and add FIXME for
transport_lookup_tmr_lun() with se_lun->lun_ref.

Finally, update sbp_update_unit_directory() special case usage with
proper rcu_dereference_raw() and configfs symlink comment.

Reported-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Chris Boot <bootc@bootc.net>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
2015-06-01 00:27:38 -07:00
..
iscsi target: Convert se_portal_group->tpg_lun_list[] to RCU hlist 2015-06-01 00:24:33 -07:00
loopback target: target_core_configfs.h is not needed in fabric drivers 2015-05-30 22:42:39 -07:00
sbp target: Drop lun_sep_lock for se_lun->lun_se_dev RCU usage 2015-06-01 00:27:38 -07:00
tcm_fc target: Convert se_tpg->acl_node_lock to ->acl_node_mutex 2015-06-01 00:24:44 -07:00
Kconfig target: Put TCMU under a new config option 2015-04-19 22:41:12 -07:00
Makefile target: Put TCMU under a new config option 2015-04-19 22:41:12 -07:00
target_core_alua.c target: Drop lun_sep_lock for se_lun->lun_se_dev RCU usage 2015-06-01 00:27:38 -07:00
target_core_alua.h target: Subsume se_port + t10_alua_tg_pt_gp_member into se_lun 2015-06-01 00:26:38 -07:00
target_core_configfs.c target: Subsume se_port + t10_alua_tg_pt_gp_member into se_lun 2015-06-01 00:26:38 -07:00
target_core_device.c target: Drop lun_sep_lock for se_lun->lun_se_dev RCU usage 2015-06-01 00:27:38 -07:00
target_core_fabric_configfs.c target: Subsume se_port + t10_alua_tg_pt_gp_member into se_lun 2015-06-01 00:26:38 -07:00
target_core_fabric_lib.c target: target_core_configfs.h is not needed in fabric drivers 2015-05-30 22:42:39 -07:00
target_core_file.c target: Drop lun_sep_lock for se_lun->lun_se_dev RCU usage 2015-06-01 00:27:38 -07:00
target_core_file.h target/file: Remove fd_prot bounce buffer 2015-05-30 22:41:42 -07:00
target_core_hba.c target: simplify backend driver registration 2015-06-01 00:25:34 -07:00
target_core_iblock.c target: Drop lun_sep_lock for se_lun->lun_se_dev RCU usage 2015-06-01 00:27:38 -07:00
target_core_iblock.h target: kill struct se_subsystem_dev 2012-11-06 20:55:43 -08:00
target_core_internal.h target: Subsume se_port + t10_alua_tg_pt_gp_member into se_lun 2015-06-01 00:26:38 -07:00
target_core_pr.c target: Subsume se_port + t10_alua_tg_pt_gp_member into se_lun 2015-06-01 00:26:38 -07:00
target_core_pr.h target: Fix APTPL metadata handling for dynamic MappedLUNs 2014-10-04 05:40:19 +00:00
target_core_pscsi.c target: Drop lun_sep_lock for se_lun->lun_se_dev RCU usage 2015-06-01 00:27:38 -07:00
target_core_pscsi.h target/pscsi: Don't leak scsi_host if hba is VIRTUAL_HOST 2015-05-30 19:11:02 -07:00
target_core_rd.c target: Drop lun_sep_lock for se_lun->lun_se_dev RCU usage 2015-06-01 00:27:38 -07:00
target_core_rd.h target/rd: Add support for protection SGL setup + release 2014-01-19 02:22:05 +00:00
target_core_sbc.c target: handle odd SG mapping for data transfer memory 2015-05-30 22:42:25 -07:00
target_core_spc.c target: Drop lun_sep_lock for se_lun->lun_se_dev RCU usage 2015-06-01 00:27:38 -07:00
target_core_stat.c target: Drop lun_sep_lock for se_lun->lun_se_dev RCU usage 2015-06-01 00:27:38 -07:00
target_core_tmr.c target: target_core_configfs.h is not needed in fabric drivers 2015-05-30 22:42:39 -07:00
target_core_tpg.c target: Drop lun_sep_lock for se_lun->lun_se_dev RCU usage 2015-06-01 00:27:38 -07:00
target_core_transport.c target: Drop lun_sep_lock for se_lun->lun_se_dev RCU usage 2015-06-01 00:27:38 -07:00
target_core_ua.c target: Convert se_node_acl->device_list[] to RCU hlist 2015-06-01 00:23:46 -07:00
target_core_ua.h target: target_core_ua_h: Add #define of include guard 2014-09-15 14:27:43 -07:00
target_core_user.c target: Drop lun_sep_lock for se_lun->lun_se_dev RCU usage 2015-06-01 00:27:38 -07:00
target_core_xcopy.c target: Subsume se_port + t10_alua_tg_pt_gp_member into se_lun 2015-06-01 00:26:38 -07:00
target_core_xcopy.h target: Add support for EXTENDED_COPY copy offload emulation 2013-09-10 16:48:43 -07:00