From mboxrd@z Thu Jan 1 00:00:00 1970 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 4AD40C369BD for ; Wed, 16 Apr 2025 09:33:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CE8DF6B024B; Wed, 16 Apr 2025 05:33:18 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C96906B024C; Wed, 16 Apr 2025 05:33:18 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B39096B024D; Wed, 16 Apr 2025 05:33:18 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 963856B024B for ; Wed, 16 Apr 2025 05:33:18 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id D1A27B8EA5 for ; Wed, 16 Apr 2025 09:33:19 +0000 (UTC) X-FDA: 83339393718.21.DB916C4 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by imf16.hostedemail.com (Postfix) with ESMTP id A189018000B for ; Wed, 16 Apr 2025 09:33:17 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b="rB5pm/DY"; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=EG+WKcD7; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b="rB5pm/DY"; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=EG+WKcD7; dmarc=none; spf=pass (imf16.hostedemail.com: domain of jack@suse.cz designates 195.135.223.131 as permitted sender) smtp.mailfrom=jack@suse.cz ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744795997; a=rsa-sha256; cv=none; b=2sLrY0Cf2CwR5mWoAH8274A9P3SNMmQ2Rzr+qZcuSgtu+vE8EWeAnviqd8yxR5QQK3Fpip a+fCCPpiCZDnfejFLDFTNKAdO8L22K7/0KtTrUImyoAx5Kzcr7HSEvSjjVq2BqQmgEnTak IBOy/MWfhULO6i9b3IkEXW85QmJiGS4= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b="rB5pm/DY"; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=EG+WKcD7; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b="rB5pm/DY"; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=EG+WKcD7; dmarc=none; spf=pass (imf16.hostedemail.com: domain of jack@suse.cz designates 195.135.223.131 as permitted sender) smtp.mailfrom=jack@suse.cz ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744795997; 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-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=FjVmMLTjRVd3l7vFMOIetPD6FjLCrRAfbfGXOkQHEC0=; b=sgJG0sjUa9JtQ19K26ESLgmcK6myQ8VvLzwWz66aUyF5XginBMZXGXlKtaVERgaJDndREN iEbc+wiAGZ1fKKLiza6DlPWy6ViJxJCTKRXYzTETrny7s30YM5+hFFv+5qT4xHbtNeusQX gKvLyhHKPKaOvLlDFwg6mC4a2K/G4ZU= Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 1CB491F445; Wed, 16 Apr 2025 09:33:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1744795996; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=FjVmMLTjRVd3l7vFMOIetPD6FjLCrRAfbfGXOkQHEC0=; b=rB5pm/DYSVkr4Vt/nI/piRfriGwhJeRVlHYev3x12C/geZetmLCY8XjH9GwhXjB2ma0wmh eOjBKP18bZhQl6WEOQhLwPYR3zMERwNV2SoHmkE7yn9QAlm0cGnyRg8qtbFOwFgn1JNKcG r3c4KBl8JzTWBF7LCU3YApZusu1TDZU= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1744795996; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=FjVmMLTjRVd3l7vFMOIetPD6FjLCrRAfbfGXOkQHEC0=; b=EG+WKcD7fI2kwvvCmMqLzYrM4JdFio9WzSrcwXOME+3lcZ/hb8wFYhjUtsEnpZkcTM6o6H n/sgYtwakF+7MUDg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1744795996; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=FjVmMLTjRVd3l7vFMOIetPD6FjLCrRAfbfGXOkQHEC0=; b=rB5pm/DYSVkr4Vt/nI/piRfriGwhJeRVlHYev3x12C/geZetmLCY8XjH9GwhXjB2ma0wmh eOjBKP18bZhQl6WEOQhLwPYR3zMERwNV2SoHmkE7yn9QAlm0cGnyRg8qtbFOwFgn1JNKcG r3c4KBl8JzTWBF7LCU3YApZusu1TDZU= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1744795996; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=FjVmMLTjRVd3l7vFMOIetPD6FjLCrRAfbfGXOkQHEC0=; b=EG+WKcD7fI2kwvvCmMqLzYrM4JdFio9WzSrcwXOME+3lcZ/hb8wFYhjUtsEnpZkcTM6o6H n/sgYtwakF+7MUDg== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 1313D13976; Wed, 16 Apr 2025 09:33:16 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id t3akBFx5/2ewcwAAD6G6ig (envelope-from ); Wed, 16 Apr 2025 09:33:16 +0000 Received: by quack3.suse.cz (Postfix, from userid 1000) id D081EA0947; Wed, 16 Apr 2025 11:33:11 +0200 (CEST) Date: Wed, 16 Apr 2025 11:33:11 +0200 From: Jan Kara To: Davidlohr Bueso Cc: jack@suse.cz, tytso@mit.edu, adilger.kernel@dilger.ca, brauner@kernel.org, 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 Subject: Re: [PATCH 2/7] fs/buffer: introduce sleeping flavors for pagecache lookups Message-ID: References: <20250415231635.83960-1-dave@stgolabs.net> <20250415231635.83960-3-dave@stgolabs.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250415231635.83960-3-dave@stgolabs.net> X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: A189018000B X-Stat-Signature: 8sbgbkan54gaw7pfnujbzrqzkyr7xhdz X-Rspam-User: X-HE-Tag: 1744795997-835098 X-HE-Meta: U2FsdGVkX1/S/2BOUSTihL5nir+/5xHCX7hNZeD0WkPWo9ijyr6d7EFWLmEVZxsglXLRChnTA181UjfysLQokoE2oQV3AbrM7uFATb4+1Hc15Rf1XDgI1Lb2u71U64RbHg7A5e+C6c2ypWn1eIl1yyXyZJpxkTEAaLKjODhn55YqBL/KLHujozs3lj4tmcgs9yQh+HgA2MHwc8m2odEpZxgHdyiz9iaO/SrXO9g5vEqNo2rE6o560eMA/UfJ7lGF5cZAPXXB1bQc6yfutikhieSeWw8SRZmiiVp9wf/L0cjzuOqPH0lgI24Ww4AcY+ke7KJ0stvviIe3q79149PG4cjDtVNkNBideEqNVzOB5nW4qv093iq8Rh+efjspiZm/q2gHBtXxAgQXjRNWR4HAk1aYmBwOeP72OheT0rrXM7GBwKgh0TkG60wlEhOkOmTwwNFB/TsNBTXohOLk5ckBWShEOgZbhn8ekhBX2fvxPEeGgN3tehR7n14a6IZK3B1br0JUmN4+O40RbETVtPGcIqCk/sewK9HFpOf3ju8o46nWaaIdjrNvAHb0Voxom6IHAnDxC2iADRMRufYDHLfQct04mui2fONEwAQql28K4nBBGzrzl711GQSWKu8sjS0yQpE99zyvkBkFS7Ebtewfyt8JL0kPQZJb+yaz8IW+GU+/ctemC29g99BllBxHo6T/8htuRPzs6svOywH64WzehMOiih2huiTOnEVsl+yhHeeHfLYP1L9ZjP88zNhZfvbmtufoxxyfP4LnkKzPq8sRJVaaCEuBR6Ck9LGT6HUZ8uFONfyUjUQ7GyyTBwqw0ENN4arrg6gmKPEnQgiWqBraOLMNnb5tYvfloZ53KeZucphe9lQ/EsKzeVqMBGuf6j8YGWcRGqW/bmJV2bhPCJ/YMEmqGRCaTHKKx5H4L1t+v25HMLKi0gT/rJlOd4DT+HEMilovGCZ3EpMKv5vc0qW YsOCwU4J iyNVxzooG4E8Ma3LbDVb5wTJ/S0C7GFBu+44zqFyjMzhVS6OJo3INKcU9MZcOHJniRIUHuLG3JaYj42x7WSSJbh2GtY7S3JgaNi90FS7Ws0PC/6N8/tmLsrdfSi8JfYUSU4fmpSnrt+PLWxp8lOuSMk0AX+7jv59o7E7cvG+zSZMc6xKdyR8aThiA4OP4LLT172rkLFBhbnZMIktYwcFF0xUg03QxN6WVDw+zgBh4DkEGafUKKYVXdkCAjkxRUlULjXPzjJASYmMDgH5tFDeQvxa9X6vHjM+VK14aN6RmyrzFJ3t1GLt5YWNxSXcJtYAobeC+CzJr9vtG1+NWPJYArgUOptAFFpv/bTsFqvnRDKjgvqrrhCZjJYMwCJqn8ghQGPACrEz9KfKDACD83V1ac12iWw== 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: On Tue 15-04-25 16:16:30, Davidlohr Bueso wrote: > Add __find_get_block_nonatomic() and sb_find_get_block_nonatomic() > calls for which users will be converted where safe. These versions > will take the folio lock instead of the mapping's private_lock. > > Signed-off-by: Davidlohr Bueso Looks good. Feel free to add: Reviewed-by: Jan Kara Honza > --- > fs/buffer.c | 9 +++++++++ > include/linux/buffer_head.h | 8 ++++++++ > 2 files changed, 17 insertions(+) > > diff --git a/fs/buffer.c b/fs/buffer.c > index c72ebff1b3f0..64034638ee2c 100644 > --- a/fs/buffer.c > +++ b/fs/buffer.c > @@ -1414,6 +1414,15 @@ __find_get_block(struct block_device *bdev, sector_t block, unsigned size) > } > EXPORT_SYMBOL(__find_get_block); > > +/* same as __find_get_block() but allows sleeping contexts */ > +struct buffer_head * > +__find_get_block_nonatomic(struct block_device *bdev, sector_t block, > + unsigned size) > +{ > + return find_get_block_common(bdev, block, size, false); > +} > +EXPORT_SYMBOL(__find_get_block_nonatomic); > + > /** > * bdev_getblk - Get a buffer_head in a block device's buffer cache. > * @bdev: The block device. > diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h > index f0a4ad7839b6..c791aa9a08da 100644 > --- a/include/linux/buffer_head.h > +++ b/include/linux/buffer_head.h > @@ -222,6 +222,8 @@ void __wait_on_buffer(struct buffer_head *); > wait_queue_head_t *bh_waitq_head(struct buffer_head *bh); > struct buffer_head *__find_get_block(struct block_device *bdev, sector_t block, > unsigned size); > +struct buffer_head *__find_get_block_nonatomic(struct block_device *bdev, > + sector_t block, unsigned size); > struct buffer_head *bdev_getblk(struct block_device *bdev, sector_t block, > unsigned size, gfp_t gfp); > void __brelse(struct buffer_head *); > @@ -397,6 +399,12 @@ sb_find_get_block(struct super_block *sb, sector_t block) > return __find_get_block(sb->s_bdev, block, sb->s_blocksize); > } > > +static inline struct buffer_head * > +sb_find_get_block_nonatomic(struct super_block *sb, sector_t block) > +{ > + return __find_get_block_nonatomic(sb->s_bdev, block, sb->s_blocksize); > +} > + > static inline void > map_bh(struct buffer_head *bh, struct super_block *sb, sector_t block) > { > -- > 2.39.5 > -- Jan Kara SUSE Labs, CR