Received: by 2002:a05:6358:45e:b0:b5:b6eb:e1f9 with SMTP id 30csp1924325rwe; Sat, 27 Aug 2022 22:30:07 -0700 (PDT) X-Google-Smtp-Source: AA6agR6cZabBQqlh2TQ/QN6N0fVe52/RF6b5qTFnB+OK8y1UGRH6xFLfJJwjV7uEsdM61Nw3nOgB X-Received: by 2002:a17:906:b84a:b0:73d:bacd:84e5 with SMTP id ga10-20020a170906b84a00b0073dbacd84e5mr10159786ejb.750.1661664606832; Sat, 27 Aug 2022 22:30:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1661664606; cv=none; d=google.com; s=arc-20160816; b=Wx2TIABKTyciwq1qH/j8HCa380cT1gMjcizauD/kA1kP9ryMTGP1x4vr6oDDMGV1vR 4DmmkmF5djf/8/K223D7dFcw2xP/LfZjsKczwec5OVqz+CXzPMrFJsQs73I3yOeQhuJm 08EX29Ef105pSXPZZbhRbXeknsKfeLFwMAAjqTsr1IYhrGL9z0Cxkwa+o19iriWBCYN0 9T95PCna9xy+uSSEc8V4Hnil9eHkMSh3Iz4b1QmxeUbFspb6IT8fI2VKC5zwitb/lpIb 3ITC9Xj+VnwOvHqmLLDHjSB6HORKJHdn98rMxuF158Pwf1PMee46Os0eAXX7O6eac1aF B/Aw== 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:sender :dkim-signature; bh=88iMR9hKTzO75VCZYoWA2Dyf+17rRly6JO4axtKQRAk=; b=P/x9anRSThhJbBFUEYjnJi2hKf5m6h7+4eO9AD8kA9vkvuITfN1SMGy5XCDS2ggjOL DBy6mbrwXi/TRH9AhW9Rj9GmNGZ9I1zZhBB2rJBcpB4Wpqv0rdcwujaPupwSZmO0LsNo pmBWwT6S2zaz2j8+oJkvhNzIjqjV7fy0nmLiFTHO/6Ks3sQPGech3ffpkFpqE5bibZjk 4mYbLmOBipk7n9ucd6lzFaOO+QLQEMD5Eh8XyqsiwAxJWfouzUlRSg7JjEt8oilEDjct tFEX6phD18bIQxCIa64fG8KtKtsQ/pVs//RAyOkznCXPTxPNMSKPIXbM4br57noa6/OH eBgA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=lTmTgVWe; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id hp35-20020a1709073e2300b0073dde76f08bsi4326938ejc.674.2022.08.27.22.29.41; Sat, 27 Aug 2022 22:30:06 -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; dkim=pass header.i=@gmail.com header.s=20210112 header.b=lTmTgVWe; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232558AbiH1FFh (ORCPT + 99 others); Sun, 28 Aug 2022 01:05:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52770 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232224AbiH1FFQ (ORCPT ); Sun, 28 Aug 2022 01:05:16 -0400 Received: from mail-pf1-x433.google.com (mail-pf1-x433.google.com [IPv6:2607:f8b0:4864:20::433]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5A0BA20187; Sat, 27 Aug 2022 22:05:04 -0700 (PDT) Received: by mail-pf1-x433.google.com with SMTP id 145so4949171pfw.4; Sat, 27 Aug 2022 22:05:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc; bh=88iMR9hKTzO75VCZYoWA2Dyf+17rRly6JO4axtKQRAk=; b=lTmTgVWefuYiMBVuFrLa1g5eQioOHeZaNbUAQjZ+AZMYlDFPH5RyLjKfEp5k1fXaNn lc0e3P7vC9FHj9Kk1I1orjytNoE9liLI174dfWbTLwkNFIf+orKY+u0B+B4BiDdG0cjz WEuFWb+PJwoarY7x38VVguCSAPN0PsQDcIhOg975pyMhqzsT/BEVxM+t2gkdMARetsG5 gea60SBcLfx95dySBKGYXXgxPSSgs+9PKE6mocMjUyPHq7i1yZHz1yUDN4x2C5kvuao9 KNQ1eU3K1pF9FDp26g/3v2fdix63GBLHCQFcU6+06VnkFAl0YhffcAA0SBwYkzhSb21T HnlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc; bh=88iMR9hKTzO75VCZYoWA2Dyf+17rRly6JO4axtKQRAk=; b=U4CrL1BlIIU48mi4SRF7pQhJbJbll1UDhnMWmMVTq+c1BL6gAuKweS0KAM0khoYJWv J/7+vpRE9Ax9rA1cyVHz9xH7JFdpvNp/zD9Xd0x/uHeCV8QGb6wNP+7RdNNk2YnZ9XRY rv01FoVokyRAhvnGT4c2xLbvmgCEU+PIvo3+TAlDuo+MsJxwPIysQY6/v+JgeFqBeC6E imSy+DqwD5Fhw4F55Edqgh7Rgo99GSDHA7gaGqGt9hwHNFasOxZMkeD7bPXjBf/BkzGK xmmekbNZ7klLUemxezp7T6vo6l/Gq/BPu+jl9SxTk3mHpdSqxpSYsPqYi+zgjXBgYRCy 5WDQ== X-Gm-Message-State: ACgBeo0xCl9K2+qY0nG45GhhOAGoKvpQPH/JIfjqpxS6n14zEMSUU7zv IDyFVt42d2pUy2ioVoKRUtittP65TnA= X-Received: by 2002:a63:e352:0:b0:42b:dc03:cc38 with SMTP id o18-20020a63e352000000b0042bdc03cc38mr1658154pgj.545.1661663104101; Sat, 27 Aug 2022 22:05:04 -0700 (PDT) Received: from localhost (2603-800c-1a02-1bae-a7fa-157f-969a-4cde.res6.spectrum.com. [2603:800c:1a02:1bae:a7fa:157f:969a:4cde]) by smtp.gmail.com with ESMTPSA id bj15-20020a056a02018f00b0041d70c03da5sm3888480pgb.60.2022.08.27.22.05.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 27 Aug 2022 22:05:03 -0700 (PDT) Sender: Tejun Heo From: Tejun Heo To: Greg Kroah-Hartman Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, Chengming Zhou , Johannes Weiner , Imran Khan , kernel-team@fb.com, Tejun Heo Subject: [PATCH 7/9] kernfs: Factor out kernfs_activate_one() Date: Sat, 27 Aug 2022 19:04:38 -1000 Message-Id: <20220828050440.734579-8-tj@kernel.org> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20220828050440.734579-1-tj@kernel.org> References: <20220828050440.734579-1-tj@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=no 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 Factor out kernfs_activate_one() from kernfs_activate() and reorder operations so that KERNFS_ACTIVATED now simply indicates whether activation was attempted on the node ignoring whether activation took place. As the flag doesn't have a reader, the refactoring and reordering shouldn't cause any behavior difference. Signed-off-by: Tejun Heo --- fs/kernfs/dir.c | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/fs/kernfs/dir.c b/fs/kernfs/dir.c index f8cbd05e9b68..c9323956c63c 100644 --- a/fs/kernfs/dir.c +++ b/fs/kernfs/dir.c @@ -1305,6 +1305,21 @@ static struct kernfs_node *kernfs_next_descendant_post(struct kernfs_node *pos, return pos->parent; } +static void kernfs_activate_one(struct kernfs_node *kn) +{ + lockdep_assert_held_write(&kernfs_root(kn)->kernfs_rwsem); + + kn->flags |= KERNFS_ACTIVATED; + + if (kernfs_active(kn) || (kn->flags & KERNFS_REMOVING)) + return; + + WARN_ON_ONCE(kn->parent && RB_EMPTY_NODE(&kn->rb)); + WARN_ON_ONCE(atomic_read(&kn->active) != KN_DEACTIVATED_BIAS); + + atomic_sub(KN_DEACTIVATED_BIAS, &kn->active); +} + /** * kernfs_activate - activate a node which started deactivated * @kn: kernfs_node whose subtree is to be activated @@ -1326,16 +1341,8 @@ void kernfs_activate(struct kernfs_node *kn) down_write(&root->kernfs_rwsem); pos = NULL; - while ((pos = kernfs_next_descendant_post(pos, kn))) { - if (kernfs_active(pos) || (pos->flags & KERNFS_REMOVING)) - continue; - - WARN_ON_ONCE(pos->parent && RB_EMPTY_NODE(&pos->rb)); - WARN_ON_ONCE(atomic_read(&pos->active) != KN_DEACTIVATED_BIAS); - - atomic_sub(KN_DEACTIVATED_BIAS, &pos->active); - pos->flags |= KERNFS_ACTIVATED; - } + while ((pos = kernfs_next_descendant_post(pos, kn))) + kernfs_activate_one(pos); up_write(&root->kernfs_rwsem); } -- 2.37.2