Received: by 2002:ad5:4acb:0:0:0:0:0 with SMTP id n11csp4268407imw; Tue, 19 Jul 2022 03:25:03 -0700 (PDT) X-Google-Smtp-Source: AGRyM1sQ60X3RZi7ye3Bjc+ydXBP0ORmx0pS9jbY65kVfrHxD5apHvwJ24F50WmoMXQnXrOs3WgR X-Received: by 2002:a05:6402:50d0:b0:43a:df6d:6f4d with SMTP id h16-20020a05640250d000b0043adf6d6f4dmr42845236edb.72.1658226303161; Tue, 19 Jul 2022 03:25:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1658226303; cv=none; d=google.com; s=arc-20160816; b=dt2wih6Rpx0nT0+vrpRuWEORzbqOWMd6nJfn+3I8VZV86PC65mZvua4EvYv5q4veK1 MUVIo8ZQF2ZoGBePLAYY+sOlFbM/4kJgb3HY5XtKOEzmeD7VdAWXHhrP8xERD8mAyKL4 9dV/EM513U7F91NUJJee0+KyzFtVJxalPXaw4cfmCZrq259gWWv8K8WOcsewlUfrHYuz Ip3YvSj49SD4Em89jqsLy0UQiNrRlItBAqs+cDAPtqMcopx6dhZjks1LL2sRuA+N4ClV ypUS+QW/rUzjIe62JGZkYOIl5OW2CLM6NPmON0pH3zKEGu1+WuNCZXmzxyKYmvsfs2+B 1q7Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=tVpVXUQbp0ONrwX/mhyCJOYfBnU0Qk8DrGBit/mR8Sg=; b=cTQdLjOsnu4V47wBeG3vvczXR8oHQE+80BAbRJpYGdyKQfJH81W0CwuO67rRm5SvcX O+1e11qOKEOp2cr9wi5y6jb615n3QeZ4taut6V6lQFEm0vl2T+iLK6aRBfPcuepfi0Zc LzBw5R65/W6zYTxc6Dg0rVPIRs3oisY/pVeQa+v7Dhf6BPOFkn4Hyv7oMzK+8EvC86rI TEPg+yXAWiNcPY3GFlI//A/WJ6nXDuMOpCAxA9UYsbhL/OYvluBDeu2sKvCCxzgrpx6g iuvExJyr0Nwekb+rGkPzid8LhdcEU7uOH8DTONxQb+pqMk4cTUdajZd56c9XeTbO/8ga HCsQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id cr20-20020a170906d55400b006fea113fc9fsi4400839ejc.762.2022.07.19.03.24.39; Tue, 19 Jul 2022 03:25:03 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237486AbiGSKCV (ORCPT + 99 others); Tue, 19 Jul 2022 06:02:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57144 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237525AbiGSKCA (ORCPT ); Tue, 19 Jul 2022 06:02:00 -0400 Received: from smtp.smtpout.orange.fr (smtp04.smtpout.orange.fr [80.12.242.126]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 339503B972 for ; Tue, 19 Jul 2022 03:01:43 -0700 (PDT) Received: from pop-os.home ([90.11.190.129]) by smtp.orange.fr with ESMTPA id Dk2qo321pxaQ2Dk2roiSAR; Tue, 19 Jul 2022 12:01:41 +0200 X-ME-Helo: pop-os.home X-ME-Auth: YWZlNiIxYWMyZDliZWIzOTcwYTEyYzlhMmU3ZiQ1M2U2MzfzZDfyZTMxZTBkMTYyNDBjNDJlZmQ3ZQ== X-ME-Date: Tue, 19 Jul 2022 12:01:41 +0200 X-ME-IP: 90.11.190.129 From: Christophe JAILLET To: Mark Fasheh , Joel Becker , Joseph Qi Cc: linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org, Christophe JAILLET , ocfs2-devel@oss.oracle.com Subject: [PATCH 2/3] ocfs2: Remove a useless spinlock Date: Tue, 19 Jul 2022 12:01:35 +0200 Message-Id: <8ba7004d330cbe5f626539a8a3bff696d0c4285e.1658224839.git.christophe.jaillet@wanadoo.fr> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 'node_map_lock' is a spinlock only used to protect calls to set_bit(), clear_bit() and test_bit(). {set|clear}_bit() are already atomic and don't need this extra spinlock. test_bit() only reads the bitmap for a given bit. Remove this useless spinlock. Signed-off-by: Christophe JAILLET --- test_bit() is NOT documented as an atomic function. However, I can't see how it could return a wrong result here. So review with care. There is maybe something I don't think about that is lurking here. --- fs/ocfs2/heartbeat.c | 11 ++++------- fs/ocfs2/ocfs2.h | 2 -- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/fs/ocfs2/heartbeat.c b/fs/ocfs2/heartbeat.c index 1d72e0788943..4863ad35c242 100644 --- a/fs/ocfs2/heartbeat.c +++ b/fs/ocfs2/heartbeat.c @@ -35,7 +35,6 @@ static void ocfs2_node_map_init(struct ocfs2_node_map *map) void ocfs2_init_node_maps(struct ocfs2_super *osb) { - spin_lock_init(&osb->node_map_lock); ocfs2_node_map_init(&osb->osb_recovering_orphan_dirs); } @@ -67,9 +66,8 @@ void ocfs2_node_map_set_bit(struct ocfs2_super *osb, if (bit==-1) return; BUG_ON(bit >= map->num_nodes); - spin_lock(&osb->node_map_lock); + set_bit(bit, map->map); - spin_unlock(&osb->node_map_lock); } void ocfs2_node_map_clear_bit(struct ocfs2_super *osb, @@ -79,9 +77,8 @@ void ocfs2_node_map_clear_bit(struct ocfs2_super *osb, if (bit==-1) return; BUG_ON(bit >= map->num_nodes); - spin_lock(&osb->node_map_lock); + clear_bit(bit, map->map); - spin_unlock(&osb->node_map_lock); } int ocfs2_node_map_test_bit(struct ocfs2_super *osb, @@ -89,13 +86,13 @@ int ocfs2_node_map_test_bit(struct ocfs2_super *osb, int bit) { int ret; + if (bit >= map->num_nodes) { mlog(ML_ERROR, "bit=%d map->num_nodes=%d\n", bit, map->num_nodes); BUG(); } - spin_lock(&osb->node_map_lock); + ret = test_bit(bit, map->map); - spin_unlock(&osb->node_map_lock); return ret; } diff --git a/fs/ocfs2/ocfs2.h b/fs/ocfs2/ocfs2.h index 740b64238312..1df193b97c30 100644 --- a/fs/ocfs2/ocfs2.h +++ b/fs/ocfs2/ocfs2.h @@ -302,8 +302,6 @@ struct ocfs2_super u32 *slot_recovery_generations; - spinlock_t node_map_lock; - u64 root_blkno; u64 system_dir_blkno; u64 bitmap_blkno; -- 2.34.1