From patchwork Tue Apr 15 23:16:33 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Davidlohr Bueso X-Patchwork-Id: 14052925 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id C2FAAC369AB for ; Tue, 15 Apr 2025 23:17:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6290B6B01F5; Tue, 15 Apr 2025 19:16:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5DB436B01F7; Tue, 15 Apr 2025 19:16:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 455736B01F8; Tue, 15 Apr 2025 19:16:50 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 1DAF36B01F5 for ; Tue, 15 Apr 2025 19:16:50 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 05C4A14151E for ; Tue, 15 Apr 2025 23:16:51 +0000 (UTC) X-FDA: 83337840222.11.44EE399 Received: from panther.cherry.relay.mailchannels.net (panther.cherry.relay.mailchannels.net [23.83.223.141]) by imf26.hostedemail.com (Postfix) with ESMTP id B141C140008 for ; Tue, 15 Apr 2025 23:16:48 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=stgolabs.net header.s=dreamhost header.b=SyQfGtul; dmarc=none; spf=pass (imf26.hostedemail.com: domain of dave@stgolabs.net designates 23.83.223.141 as permitted sender) smtp.mailfrom=dave@stgolabs.net; arc=pass ("mailchannels.net:s=arc-2022:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744759008; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=1l01/oHMrv05TV0ULL7/RgVMZj90KQ8VPfIqNTQ9xYs=; b=UcvNHdpIIQPu3d6KIMOsVkE1x0/rTT/6Cxam7zeDjgt9cQXOHd/EgPQaAViedqi1g7uDBB mTK8c0AV4pE3xDgJDLL7bRJ4aG1wtIgbw4skzyFqzm2JBS0yskSd3qFJZ9/gbD8wS+BLWO t/cC3kvsymF3ZG8F6ydS6zzG7/JAF2I= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1744759008; a=rsa-sha256; cv=pass; b=tGfK6nalCDtgP/dp9itT0NXensfy/gtomSSzz+L4du81SVZFcgCdBmCruvB39U8h10rLi8 3MMZFSkQctNqHS3aMUfReeRl6Qbi/gqVi/27r4JlwBP32GY8nvSJENi2RGCujvWvuBvOa4 JREd82ny243YJY7H2PIRD14OUSAYyi0= ARC-Authentication-Results: i=2; imf26.hostedemail.com; dkim=pass header.d=stgolabs.net header.s=dreamhost header.b=SyQfGtul; dmarc=none; spf=pass (imf26.hostedemail.com: domain of dave@stgolabs.net designates 23.83.223.141 as permitted sender) smtp.mailfrom=dave@stgolabs.net; arc=pass ("mailchannels.net:s=arc-2022:i=1") X-Sender-Id: dreamhost|x-authsender|dave@stgolabs.net Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id A410E1A4F6E; Tue, 15 Apr 2025 23:16:47 +0000 (UTC) Received: from pdx1-sub0-mail-a273.dreamhost.com (trex-9.trex.outbound.svc.cluster.local [100.107.95.94]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 4122D1A4FE0; Tue, 15 Apr 2025 23:16:47 +0000 (UTC) ARC-Seal: i=1; s=arc-2022; d=mailchannels.net; t=1744759007; a=rsa-sha256; cv=none; b=ezPCxliX3Neqty+xipVIlcoDe0TzVCgeaBzX6Gta+nfU3iEam/iFJBr3el/Ft9AAzV1jed VDrnSaxoawSTN3DIWxnlpn6ReoBh+cRbBdoxvEuZ/e+FX0HfWH7PTkJmgimGAmYTC7FwxQ 3zHGKiWBF2VorWiVhsjANHi34FKBeY78oV2em43A6oYfR0UY9xytYTCrTJhg2GIULwrNaC qogGTN+k2y9ABVr9YCTn7tHn4O4MP0nZKjEFE1X3XMscV0uRCU8PqtNZEGIKTzlIvSZ4Cd DX59JzTTo9FXbtkRjEEkwpsxjSQqICQ/jc6nJHPArmkBLENmdZlmymDsvcTOjQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.net; s=arc-2022; t=1744759007; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=1l01/oHMrv05TV0ULL7/RgVMZj90KQ8VPfIqNTQ9xYs=; b=7W3dzRToEk+k2/uG5S1+9P/T6IjIX7bxmihfzhkbtfcd99SOobdgQdktOBFf9G/eBi0bQe /lLv4PjThkjPwQ1OYOu7yuIE4fbXc2SbOVn7WHIeQ02vFnOdiE0YfZB2vUV4qd8Ab2gplg WmyvBd6jE3cmC3PFIOW3SGBCHSgD4xGO7YiqxSv01XwkVgzp7g+kME4QVdNgnTvlAREzM0 /wg1qptjsvxa0jtGjZBW+zLYjjO8bWr0aqxs3O+QpgnMpwT+b7X7NMgg5KQTnMGJTruGXp AV3zNYcbGEcJcQlHiD/J14y7IYTV8EzbYJ8xgqH0xkjb0gmBBMZ7jEtLjgTNeg== ARC-Authentication-Results: i=1; rspamd-5dd7f8b4cd-4m6r4; auth=pass smtp.auth=dreamhost smtp.mailfrom=dave@stgolabs.net X-Sender-Id: dreamhost|x-authsender|dave@stgolabs.net X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|dave@stgolabs.net X-MailChannels-Auth-Id: dreamhost X-Reign-Wide-Eyed: 76e12318560162e6_1744759007564_54610796 X-MC-Loop-Signature: 1744759007564:3970048582 X-MC-Ingress-Time: 1744759007564 Received: from pdx1-sub0-mail-a273.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384) by 100.107.95.94 (trex/7.0.3); Tue, 15 Apr 2025 23:16:47 +0000 Received: from localhost.localdomain (ip72-199-50-187.sd.sd.cox.net [72.199.50.187]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: dave@stgolabs.net) by pdx1-sub0-mail-a273.dreamhost.com (Postfix) with ESMTPSA id 4Zcg5p33MRz8V; Tue, 15 Apr 2025 16:16:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stgolabs.net; s=dreamhost; t=1744759007; bh=1l01/oHMrv05TV0ULL7/RgVMZj90KQ8VPfIqNTQ9xYs=; h=From:To:Cc:Subject:Date:Content-Transfer-Encoding; b=SyQfGtulaDKy2X3NY8kidDzYIlSRZblPYwswdENl4KWpjYVaXwuels7cffYPH4Bc9 nTST0RjauDvTe2l71YsnwNenD4HkOYxKHsaqZgghQxJLRJuT0evXgJOBZO9T9/JcTf xFB33UBFxwzi0RkdVocWoidHLWnsAJP8vE3Yiezp7DN/upRuUUtjeN2X7uHm5OhoTf dh0C4ikz+GsyVzYGV+DGDex2ZXMOouDeaF9wMYEkzHuPe/HKFbNvlyjQ+20EwVjZBU H2pWGd/9WpjBX12zD/z2yV1TC8z0jNY4/aLYmwzZxAmRizzLrdIu82jd78WDKbDyfH 6KnltscSnjMvw== From: Davidlohr Bueso To: jack@suse.cz, tytso@mit.edu, adilger.kernel@dilger.ca, brauner@kernel.org Cc: mcgrof@kernel.org, willy@infradead.org, hare@suse.de, djwong@kernel.org, linux-ext4@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, Davidlohr Bueso Subject: [PATCH 5/7] fs/jbd2: use sleeping version of __find_get_block() Date: Tue, 15 Apr 2025 16:16:33 -0700 Message-Id: <20250415231635.83960-6-dave@stgolabs.net> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250415231635.83960-1-dave@stgolabs.net> References: <20250415231635.83960-1-dave@stgolabs.net> MIME-Version: 1.0 X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: B141C140008 X-Rspam-User: X-Stat-Signature: azr6jnwkqbd7377mmangfpcsa8344s78 X-HE-Tag: 1744759008-756707 X-HE-Meta: U2FsdGVkX19j2Jvp6KLSGLVBFv+uZxPtmyWE60L9ksoN9RaopIDFHnR+ngXjXj6widx9JqVhkW1P0rBIvLjgSlXRqQtXhvAZb5R01joUwq69TW7LLpu5kgOTqQhkcsIB3WiT6joYdIOQ7Cb5JnV6+oF39Tgq3kD34YSsI7Xwcnn77jVUpXUFANy9jw8gjIBZ8fjcpYPJRelZiLwnaOvKgxvmpeJmJCGuEhGoM10aabjVrdfHPd6IhJmwVldanwTTKvolP5PbmiDo8L1kdiwDbZrICVpe8CohIuB4CDdfgAB0UlLXPU2yE9sOnw1qNfWBqWIA0D4ufOZsKqFdHOcgrXE1LDH0ws9+zwstCNy8TjdYQ1vBB1CO1I6x749gnXQTrb2DYg0o+tFJvDd9tduwEEME3YY/UoikUgccWNAvG1a0/AzZdrIbs3MQT+wdR2wknDjherhjbkeC6VHCF0mDTpFZIZKx+yvbvdfHQn2TSiCRvaEqh7zzZFrZAPgq72A3XAHQsf02UAgMwQpwakRp+IaBwNftC4puJjIQs4hugr6uRNqCfhe4ykd7sduJDliuc4zoAXpyzHLjd+cwREYBjBF6Uh2jzPEJGd0TOatozO+l6uL5mMFpMMnsRY20U8mvPbIIs1DQaFT/QZ3d8vgu1BzF5AGQ4wEXFN2/hhMA6Unr7XrAojzaz0mfh9HLEWMYOe0ycKq5IFof4R/Ouj5p2jKwK0LQHzPBt0pJWxcwK4reIzyHKxxVbUHqxnXl90GkHub908D2K371kU39jfLYAWVICzFSGlpJ/WLiCRQt6O1WFdmF2YkXCEaF08g2p0+EBjW5wLbOo5cDEk+k1+Vql7AuXLitEm7NY//kECMx0ewPAwG9wSec6Y9VOCMtJnL5htXtmxnsuQsZSLa6VkBJ8gs6NabNpf1yU6dUc6rDtxyU4Ff9lNHo2MOiyfjf3C9Otg58U9BrfIDVcTwffIE HvShiFXi ovVSoEEym2dJyQXgMJ5DxI51QEv4gdBW7oEqxIP3HnMNPc/xru2Ov3tdsJZEuxREOE7CQA+1Ks2t5SFYK+LDin8tQdj/elRBmN478McM/nS8IS/jVH93unlknsd4wz0wqzO3hIyt45QSbob8RjBqTRGc0jPeEZmI9OFls8vV8Vlc5E/wZSJ2aWKMflTHs9FvkB0Wt+wHtIvbnYe0UVLxff6BZV71/X5F4FZ+6El/aCNXowgTfOyp35wtIYmJLkQM2+IIe81/VSHmmEVIoWpnJ6G2vv7iig3b699nMSVLR7xwImnEMKa7WLzcxVJOiabQgeuA1FKo5AdOV6+MZlJ2T8YIb1RRg5DQ+uoXetJtUlH26Wz7/Vs5Ki6I0MMcGzzJOUj3FGqx1fKHh3aI= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Convert to the new nonatomic flavor to benefit from potential performance benefits and adapt in the future vs migration such that semantics are kept. - jbd2_journal_revoke(): can sleep (has might_sleep() in the beginning) - jbd2_journal_cancel_revoke(): only used from do_get_write_access() and do_get_create_access() which do sleep. So can sleep. - jbd2_clear_buffer_revoked_flags() - only called from journal commit code which sleeps. So can sleep. Suggested-by: Jan Kara Signed-off-by: Davidlohr Bueso Reviewed-by: Jan Kara --- fs/jbd2/revoke.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/fs/jbd2/revoke.c b/fs/jbd2/revoke.c index 0cf0fddbee81..1467f6790747 100644 --- a/fs/jbd2/revoke.c +++ b/fs/jbd2/revoke.c @@ -345,7 +345,8 @@ int jbd2_journal_revoke(handle_t *handle, unsigned long long blocknr, bh = bh_in; if (!bh) { - bh = __find_get_block(bdev, blocknr, journal->j_blocksize); + bh = __find_get_block_nonatomic(bdev, blocknr, + journal->j_blocksize); if (bh) BUFFER_TRACE(bh, "found on hash"); } @@ -355,7 +356,8 @@ int jbd2_journal_revoke(handle_t *handle, unsigned long long blocknr, /* If there is a different buffer_head lying around in * memory anywhere... */ - bh2 = __find_get_block(bdev, blocknr, journal->j_blocksize); + bh2 = __find_get_block_nonatomic(bdev, blocknr, + journal->j_blocksize); if (bh2) { /* ... and it has RevokeValid status... */ if (bh2 != bh && buffer_revokevalid(bh2)) @@ -464,7 +466,8 @@ void jbd2_journal_cancel_revoke(handle_t *handle, struct journal_head *jh) * state machine will get very upset later on. */ if (need_cancel) { struct buffer_head *bh2; - bh2 = __find_get_block(bh->b_bdev, bh->b_blocknr, bh->b_size); + bh2 = __find_get_block_nonatomic(bh->b_bdev, bh->b_blocknr, + bh->b_size); if (bh2) { if (bh2 != bh) clear_buffer_revoked(bh2); @@ -492,9 +495,9 @@ void jbd2_clear_buffer_revoked_flags(journal_t *journal) struct jbd2_revoke_record_s *record; struct buffer_head *bh; record = (struct jbd2_revoke_record_s *)list_entry; - bh = __find_get_block(journal->j_fs_dev, - record->blocknr, - journal->j_blocksize); + bh = __find_get_block_nonatomic(journal->j_fs_dev, + record->blocknr, + journal->j_blocksize); if (bh) { clear_buffer_revoked(bh); __brelse(bh);