Thread (44 messages) 44 messages, 5 authors, 2015-05-21

Re: [PATCH 03/12] target/configfs: Convert mappedlun + SCSI MIBs to RCU reader

From: Andy Grover <hidden>
Date: 2015-05-12 20:58:51
Also in: lkml

On 05/12/2015 02:25 AM, Nicholas A. Bellinger wrote:
quoted hunk ↗ jump to hunk
From: Nicholas Bellinger <redacted>

This patch converts fabric independent configfs link/unlink to use
RCU read path macros for se_node_acl->lun_entry_hlist access.

It also converts SCSI MIB configfs show attribute code to use
RCU read path macros for se_node_acl->lun_entry_hlist access.

Cc: Hannes Reinecke <hare@suse.de>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Sagi Grimberg <redacted>
Signed-off-by: Nicholas Bellinger <redacted>
---
  drivers/target/target_core_fabric_configfs.c |  35 +++---
  drivers/target/target_core_stat.c            | 180 +++++++++++++--------------
  2 files changed, 110 insertions(+), 105 deletions(-)
diff --git a/drivers/target/target_core_fabric_configfs.c b/drivers/target/target_core_fabric_configfs.c
index 6cb4828..0dab6d5 100644
--- a/drivers/target/target_core_fabric_configfs.c
+++ b/drivers/target/target_core_fabric_configfs.c
@@ -123,16 +123,16 @@ static int target_fabric_mappedlun_link(
  	 * which be will write protected (READ-ONLY) when
  	 * tpg_1/attrib/demo_mode_write_protect=1
  	 */
-	spin_lock_irq(&lacl->se_lun_nacl->device_list_lock);
-	deve = lacl->se_lun_nacl->device_list[lacl->mapped_lun];
-	if (deve->lun_flags & TRANSPORT_LUNFLAGS_INITIATOR_ACCESS)
+	rcu_read_lock();
+	deve = target_nacl_find_deve(lacl->se_lun_nacl, lacl->mapped_lun);
+	if (deve && deve->lun_flags & TRANSPORT_LUNFLAGS_INITIATOR_ACCESS)
Why do we still need TRANSPORT_LUNFLAGS_INITIATOR_ACCESS? Isn't deve 
being not-NULL enough?

-- Andy
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help