From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751752AbbEMFJ2 (ORCPT ); Wed, 13 May 2015 01:09:28 -0400 Received: from mail.linux-iscsi.org ([67.23.28.174]:58713 "EHLO linux-iscsi.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750936AbbEMFJZ (ORCPT ); Wed, 13 May 2015 01:09:25 -0400 Message-ID: <1431493763.26897.36.camel@haakon3.risingtidesystems.com> Subject: Re: [PATCH 03/12] target/configfs: Convert mappedlun + SCSI MIBs to RCU reader From: "Nicholas A. Bellinger" To: Andy Grover Cc: "Nicholas A. Bellinger" , target-devel , linux-scsi , linux-kernel , Hannes Reinecke , Christoph Hellwig , Sagi Grimberg Date: Tue, 12 May 2015 22:09:23 -0700 In-Reply-To: <5552697B.8050008@redhat.com> References: <1431422736-29125-1-git-send-email-nab@daterainc.com> <1431422736-29125-4-git-send-email-nab@daterainc.com> <5552697B.8050008@redhat.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.4.4-1 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 2015-05-12 at 13:58 -0700, Andy Grover wrote: > On 05/12/2015 02:25 AM, Nicholas A. Bellinger wrote: > > From: Nicholas Bellinger > > > > 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 > > Cc: Christoph Hellwig > > Cc: Sagi Grimberg > > Signed-off-by: Nicholas Bellinger > > --- > > 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? > Yep, I think this can go as well. Dropping now. --nab