linux/include/target
Nicholas Bellinger 80bfdfa924 target/pr: Use atomic bitop for se_dev_entry->deve_flags reservation check
This patch converts the core_scsi3_pr_seq_non_holder() check for non
reservation holding registrations to use an atomic bitop in ->deve_flags
to determine if a registration is currently active.

It also includes associated a set_bit() in __core_scsi3_add_registration()
and clear_bit() in __core_scsi3_free_registration(), if se_dev_entry still
exists, and has not already been released via se_dev_entry shutdown path
in core_disable_device_list_for_node().

Also, clear_bit in core_disable_device_list_for_node as well to ensure
the read-critical path in core_scsi3_pr_seq_non_holder() picks up the
new state, preceeding the final kfree_rcu() call.

Reported-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Cc: Sagi Grimberg <sagig@mellanox.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
2015-06-01 00:24:00 -07:00
..
iscsi target: move node ACL allocation to core code 2015-05-30 22:42:23 -07:00
configfs_macros.h doc: fix broken references 2011-09-27 18:08:04 +02:00
target_core_backend_configfs.h target: Drop left-over fabric_max_sectors attribute 2015-01-09 15:22:05 -08:00
target_core_backend.h target: Convert se_node_acl->device_list[] to RCU hlist 2015-06-01 00:23:46 -07:00
target_core_base.h target/pr: Use atomic bitop for se_dev_entry->deve_flags reservation check 2015-06-01 00:24:00 -07:00
target_core_configfs.h target: remove struct target_fabric_configfs_template 2015-05-30 22:42:38 -07:00
target_core_fabric_configfs.h target: Add target_show_dynamic_sessions attribute helper 2015-03-06 21:24:53 -08:00
target_core_fabric.h target: remove ->put_session method 2015-05-30 22:42:40 -07:00