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 AFB1CC04FFE for ; Mon, 29 Apr 2024 19:38:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 27EFD6B0087; Mon, 29 Apr 2024 15:38:42 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 22EF26B0092; Mon, 29 Apr 2024 15:38:42 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0D03C6B0093; Mon, 29 Apr 2024 15:38:42 -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 E330E6B0087 for ; Mon, 29 Apr 2024 15:38:41 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 8BBB0402FD for ; Mon, 29 Apr 2024 19:38:41 +0000 (UTC) X-FDA: 82063581642.07.ED966DE Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf20.hostedemail.com (Postfix) with ESMTP id CB15D1C000D for ; Mon, 29 Apr 2024 19:38:39 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=bF9BfMwu; dmarc=none; spf=none (imf20.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1714419520; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=mhiR8BMDH8TnfXdcMJSpEG42MjSDkV9S8051r036NMU=; b=c4Ts4azL0p86gUMq/WlOMY3XPTURyl6K/+no9irNmHGqA9NsXSCgfEKHgll20soADUxDFV MUW7eRj9bm4Febub7snwEPrwEmQWshgunhnuxXhP7WPKSmr73TqCo0VbGA/vKHc6gsJ7Rx RLAjlprl6zcRYUvoNPMtDChiAUE+flo= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=bF9BfMwu; dmarc=none; spf=none (imf20.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1714419520; a=rsa-sha256; cv=none; b=3X7VAMg3lbIv/4nMsGmOhLG5Y2iXPYz3RemVDjnXbLLNhVPVLlzj2HYkBzEAr/FJii3ali R4JE/r0GDn24E1slnLFO6xOyfBt0MCmaRIw4U0EKGieVciIjLpMKo9H7Dlg+XYSW0JtOE9 kmRLENJlLamPIL4Hfp3cztvw4n574aQ= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Transfer-Encoding: Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date: Sender:Reply-To:Content-ID:Content-Description; bh=mhiR8BMDH8TnfXdcMJSpEG42MjSDkV9S8051r036NMU=; b=bF9BfMwuyaFnCeeHNcd0cOmAmf q1RgqnXFU2/R6KGuz4/E1f9q4VMiepPinqDu6cjHubiBD04zcEAN4Rni0rDM6hyRrWhIx43uopdH1 cWk1GjHdPRXGBno/F9VK5h4Z9dnQmK2/Tdf3n6PnjDatZTr0lTEwHZ+GxwLOEtR/63AgCWs7kCXpP QE7q9I0Tkw+1XHiKQaA0h6ionXFdrR0OCWD3LVEO49BFTKF1NGIWsNFEJ7zds7iR+zzZLi3s62lJA oUJyeb2Yx4ZrJFHOtXh6aZa5ba+pDl/HL45PvoosF6z+RNko6DIL3ZXAqt8HunQcOXOGPU8oIlxcR mK5eZJxA==; Received: from willy by casper.infradead.org with local (Exim 4.97.1 #2 (Red Hat Linux)) id 1s1Wpf-0000000DBQI-3MMq; Mon, 29 Apr 2024 19:38:35 +0000 Date: Mon, 29 Apr 2024 20:38:35 +0100 From: Matthew Wilcox To: Ryusuke Konishi Cc: Kairui Song , linux-mm@kvack.org, Andrew Morton , "Huang, Ying" , Chris Li , Barry Song , Ryan Roberts , Neil Brown , Minchan Kim , Hugh Dickins , David Hildenbrand , Yosry Ahmed , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-nilfs@vger.kernel.org Subject: Re: [PATCH v3 02/12] nilfs2: drop usage of page_index Message-ID: References: <20240429190500.30979-1-ryncsn@gmail.com> <20240429190500.30979-3-ryncsn@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Stat-Signature: toyyfssa8eutzeibn9c15x4h5z7qtr7k X-Rspamd-Queue-Id: CB15D1C000D X-Rspam-User: X-Rspamd-Server: rspam12 X-HE-Tag: 1714419519-423722 X-HE-Meta: U2FsdGVkX194Cu5Ycmwbtk22AS3H3nRqusdVFv5s2LkBe2O5cEQf5cWOmoT2ArxC0vx490CoR2oG77FYSKLJTASJJmXPhT1uNUenc6+2KojqULC9Qf5CXmsOH3lzWjKJgpXduex+695ly3Zj+XrjL6/9oMp6Kt7604ZCpwVwrl/j+FBPf2ABzLZMsKQGOqIeJGbkJXnhXie22qMbbAJr51sIOe42YGeYnmsx2WMLb462Ybzrq5VxfZYJoHUOtgvHTSXqR7d4qK49lQR+y/E9YRlL8EMFbHgMbFvWpt02WtBXbqcgI0jvB8UJYPGhne82SdtAv0j4Jp9xbnPkvDhS4PXnLMzrdC5ljDbZIwwR+n2zr4rw03EsVsOEQM6WQeaID39S25/rfuY6ivNhLoWPDol/Ys9iRIExO6GmgTlsQ1Y68g65kWszkvCaoCfg2nMuh7ocB8kTRHNMZAXENOPw1hbz5fFq5amDECxKQN65loUrkSCUopxqEVxjWRzwPvYlfuBmuCGiEDRvlwPSFE2DT9XuhemR6iSeqf1fIvamYiq2sbZvSYN+xcfJzHF+mvR7wzxINxG40ekonZc356xAP98rmg0fkO4qF9oh2JksES68C8oeu3ljeE65Kuk9MlaODdQbuIRb7rT29zl4g1myTXLC0nybJ7a0B7ScPSWfm4cGAp+2P0ZtW6xc4OZ6igPZ8f2CSGW3x8VM7JhfV0y/fD89kdfui/l3th1dy4PSglIygtteAg5kLkTcX2A8ELjhlyG/wXvV1jqJ2jX+SS99l/8NkBEEI005KkpmEbaPNtcmOVOhx0qKKlDT47suO3CbJd5isB9aEw4fiMUsoqc+64Z1mnHpBwxaZhTqOjBBnX4Cvb3Ey8Kutbe1i06JwFYidFBQ0/IDBdYhVRSzKhLAntx97j+ADywEQES6UEutR5drHH3Ar02dgDXzWBao4cFRc/3yI+Anyvc= 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, Apr 30, 2024 at 04:28:41AM +0900, Ryusuke Konishi wrote: > On Tue, Apr 30, 2024 at 4:22 AM Kairui Song wrote: > > > > On Tue, Apr 30, 2024 at 3:14 AM Matthew Wilcox wrote: > > > > > > On Tue, Apr 30, 2024 at 03:04:50AM +0800, Kairui Song wrote: > > > > From: Kairui Song > > > > > > > > page_index is only for mixed usage of page cache and swap cache, for > > > > pure page cache usage, the caller can just use page->index instead. > > > > > > > > It can't be a swap cache page here (being part of buffer head), > > > > so just drop it, also convert it to use folio. > > > > > > > > Signed-off-by: Kairui Song > > > > Cc: Ryusuke Konishi > > > > Cc: linux-nilfs@vger.kernel.org > > > > --- > > > > fs/nilfs2/bmap.c | 5 ++--- > > > > 1 file changed, 2 insertions(+), 3 deletions(-) > > > > > > > > diff --git a/fs/nilfs2/bmap.c b/fs/nilfs2/bmap.c > > > > index 383f0afa2cea..f4e5df0cd720 100644 > > > > --- a/fs/nilfs2/bmap.c > > > > +++ b/fs/nilfs2/bmap.c > > > > @@ -453,9 +453,8 @@ __u64 nilfs_bmap_data_get_key(const struct nilfs_bmap *bmap, > > > > struct buffer_head *pbh; > > > > __u64 key; > > > > > > > > - key = page_index(bh->b_page) << (PAGE_SHIFT - > > > > - bmap->b_inode->i_blkbits); > > > > - for (pbh = page_buffers(bh->b_page); pbh != bh; pbh = pbh->b_this_page) > > > > + key = bh->b_folio->index << (PAGE_SHIFT - bmap->b_inode->i_blkbits); > > > > + for (pbh = folio_buffers(bh->b_folio); pbh != bh; pbh = pbh->b_this_page) > > > > key++; > > > > > > > > return key; > > > > > > Why isn't this entire function simply: > > > > > > return bh->b_blocknr; > > > > > > > Nice idea, I didn't plan for extra clean up and test for fs code, but > > this might be OK to have, will check it. > > Wait a minute. > > This function returns a key that corresponds to the cache offset of > the data block, not the disk block number. > > Why is returning to bh->b_blocknr an alternative ? > Am I missing something? Sorry, I forgot how b_blocknr was used. What I meant was: u64 key = bh->b_folio->index << (PAGE_SHIFT - bmap->b_inode->i_blkbits); return key + bh_offset(bh) >> bmap->b_inode->i_blkbits; The point is to get rid of the loop. We could simplify this (and make it ready for bs>PS) by doing: loff_t pos = folio_pos(bh->b_folio) + bh_offset(bh); return pos >> bmap->b_inode->i_blkbits;