Received: by 10.192.165.148 with SMTP id m20csp948883imm; Wed, 2 May 2018 11:22:57 -0700 (PDT) X-Google-Smtp-Source: AB8JxZocSsbBZGpEDM3x8BFcOJttVr4YCH9u5kCx0l2QAyYRFGSOQagKhYWryyiX9RuxY3AurCGG X-Received: by 2002:a17:902:6b03:: with SMTP id o3-v6mr20725520plk.213.1525285377309; Wed, 02 May 2018 11:22:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525285377; cv=none; d=google.com; s=arc-20160816; b=LzWSVSl4r7NusABuYkc4bUOikeo8IviXVZZGPB5Wo4LNiIADfZHscIlRoM0b/i8pBE zrnIpCaQYpECZ9r8qcx+0YOV99mozIU8aYgJR8GFKEy9LujNsmZXIQJSRo+Jc6UEo9gD 58nd5TADu0sBWBoqwxN3pjET4XHvq8l3yu4hqm8ZlUYUFW/N8U5tOizZ7YlYSiwncb+s itBzCyoIdkpXMaMzHypjYrBHBhrfTUJBQRJdcIUgsGebthditp7pY4lG0KS6Lv7qGCDI tx4r258sLXLxiKW07+ffMKDjK4kFS1Pkve36ExSn6tfhm7xYagk62zQVbx4rNFcj4ZY9 PX0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=HDnOavuKCb6AFXr0OG1ZkRTkCk5vktOKIh7PJkTz1dw=; b=0fb9Vtknier3SMqgF1FyR4g/W2BPyYZvpbsb2Ls0z0y/Nen8aZ5AEXs72sEEY2IQyo vHbu+OIYs/tBEbqByEsBC59mU+htX7VyB1uk8Injyp/s9V+3Hlbo9hY8X9NDEmrq9KYx U+tfQtvO/HVotyiHB+RxWH6fXL48bw7JYbieHhgMFZ9pjvDmiiAhJnOM9KfpFzrROthb dj+ediRiS32ZtfuOY6cyvNrkYkCeHhyFl3AE0LXkubFRqqwZcspLSeE+3+Ik4SwY5Hlb SKszlFjtpUTiC68PYJXyfHbNYo+cihAeV668++l3s6/mF0w0ahoJbVok8i7ycflHfp7X XqKw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b67si5084776pfa.71.2018.05.02.11.22.43; Wed, 02 May 2018 11:22:57 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751414AbeEBSWB (ORCPT + 99 others); Wed, 2 May 2018 14:22:01 -0400 Received: from smtp3.ccs.ornl.gov ([160.91.203.39]:55674 "EHLO smtp3.ccs.ornl.gov" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751262AbeEBSVz (ORCPT ); Wed, 2 May 2018 14:21:55 -0400 Received: from star.ccs.ornl.gov (star.ccs.ornl.gov [160.91.202.134]) by smtp3.ccs.ornl.gov (Postfix) with ESMTP id AB064E1F; Wed, 2 May 2018 14:21:51 -0400 (EDT) Received: by star.ccs.ornl.gov (Postfix, from userid 2004) id A5A16DA7; Wed, 2 May 2018 14:21:51 -0400 (EDT) From: James Simmons To: Greg Kroah-Hartman , devel@driverdev.osuosl.org, Andreas Dilger , Oleg Drokin , Lai Siyao , Jinshan Xiong , NeilBrown Cc: Linux Kernel Mailing List , Lustre Development List , "John L. Hammond" , James Simmons Subject: [PATCH 2/4] staging: lustre: obdclass: hoist locking in lu_context_exit() Date: Wed, 2 May 2018 14:21:46 -0400 Message-Id: <1525285308-15347-3-git-send-email-jsimmons@infradead.org> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1525285308-15347-1-git-send-email-jsimmons@infradead.org> References: <1525285308-15347-1-git-send-email-jsimmons@infradead.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: "John L. Hammond" Hoist lu_keys_guard locking out of the for loop in lu_context_exit(). Signed-off-by: John L. Hammond Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-8918 Reviewed-on: https://review.whamcloud.com/24217 Reviewed-by: Dmitry Eremin Reviewed-by: Jinshan Xiong Reviewed-by: Oleg Drokin Signed-off-by: James Simmons --- drivers/staging/lustre/lustre/obdclass/lu_object.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/staging/lustre/lustre/obdclass/lu_object.c b/drivers/staging/lustre/lustre/obdclass/lu_object.c index 04475e9..4e4dd58 100644 --- a/drivers/staging/lustre/lustre/obdclass/lu_object.c +++ b/drivers/staging/lustre/lustre/obdclass/lu_object.c @@ -1711,10 +1711,11 @@ void lu_context_exit(struct lu_context *ctx) LINVRNT(ctx->lc_state == LCS_ENTERED); ctx->lc_state = LCS_LEFT; if (ctx->lc_tags & LCT_HAS_EXIT && ctx->lc_value) { + /* could race with key quiescency */ + if (ctx->lc_tags & LCT_REMEMBER) + read_lock(&lu_keys_guard); + for (i = 0; i < ARRAY_SIZE(lu_keys); ++i) { - /* could race with key quiescency */ - if (ctx->lc_tags & LCT_REMEMBER) - read_lock(&lu_keys_guard); if (ctx->lc_value[i]) { struct lu_context_key *key; @@ -1723,9 +1724,10 @@ void lu_context_exit(struct lu_context *ctx) key->lct_exit(ctx, key, ctx->lc_value[i]); } - if (ctx->lc_tags & LCT_REMEMBER) - read_unlock(&lu_keys_guard); } + + if (ctx->lc_tags & LCT_REMEMBER) + read_unlock(&lu_keys_guard); } } EXPORT_SYMBOL(lu_context_exit); -- 1.8.3.1