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 DE966C46467 for ; Mon, 16 Jan 2023 19:25:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6E1276B0071; Mon, 16 Jan 2023 14:25:00 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 690F06B0072; Mon, 16 Jan 2023 14:25:00 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 558976B0073; Mon, 16 Jan 2023 14:25:00 -0500 (EST) 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 419D46B0071 for ; Mon, 16 Jan 2023 14:25:00 -0500 (EST) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 04512140661 for ; Mon, 16 Jan 2023 19:24:59 +0000 (UTC) X-FDA: 80361639960.28.5140D0A Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf05.hostedemail.com (Postfix) with ESMTP id 89ED010000A for ; Mon, 16 Jan 2023 19:24:58 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="Khlvvn/B"; spf=none (imf05.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1673897098; 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=Rfs/h2fuKbgUtapu69jG3+GOYbLsyDbPU5dHn3JHrP8=; b=UOtZKhcLEWzhaDpsIKbvFTXUeqC0jeF90cLCz84BeANYfaRGetfUPjY9oZDbJ/Ign74f7C g9u1lYkc/A9KE2ucj77xbGetfmawI6AU5Vvmc6uIgmLYXyUyXE5yN1kPugvCtI68AMh+k3 xE9ZZU8Vp9ifNccgw4Zl2yNA7zVkJrU= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="Khlvvn/B"; spf=none (imf05.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1673897098; a=rsa-sha256; cv=none; b=wyj1xWsTDOwpMa7Vwu0MKgY7pueSfWmjnUNkcEh/LAsmQo8h3EgGtfPP/kiKtrXFSjy4Ku 90/qRcSbQhDz5j4B7IRC5AdHRCuAQS1CzMWL3pVTdrRufBDTyaCck3KXC+ybd/wBYtSC6I cXDVU6XFOz4V+AmtRrDcF4WOaATIeRo= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=Rfs/h2fuKbgUtapu69jG3+GOYbLsyDbPU5dHn3JHrP8=; b=Khlvvn/BETkvFKlwsw2sDdr1gm LxRZ1hGGSVLYNytX4dtCd/g81JxusZvFQeXYnFQOjFjRNPrRgOFkBgmwtAmKv89MnwadwFR1VlC8M W7HiWl3vJ3nJFijc+/wqQNHOxy0S7bHyK24c0tmpFLGvkMs+mfBfRJok3FBIuyyJgZME+xDyl3Dim 5kxQXu96k6UnkRazuPOoWwlXVxHaSE5416JYEn1RKDZa3f6MM7/zufEtH553CzDc3a8NDPGAkRPek DfFL1e2/sIj46jWfOJ57ROKGgh1yVGOG+JRGNq/+slwClkdnzlRdt/I5YzCPN17wNmSQCPaC6vtJJ yLs+kX8Q==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1pHV6T-0090KM-BA; Mon, 16 Jan 2023 19:25:09 +0000 From: "Matthew Wilcox (Oracle)" To: linux-mm@kvack.org, Andrew Morton Cc: "Matthew Wilcox (Oracle)" Subject: [PATCH 1/2] mm/fs: Convert inode_attach_wb() to take a folio Date: Mon, 16 Jan 2023 19:25:06 +0000 Message-Id: <20230116192507.2146150-2-willy@infradead.org> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20230116192507.2146150-1-willy@infradead.org> References: <20230116192507.2146150-1-willy@infradead.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam03 X-Stat-Signature: 9hasgpid684nm7oqb9a5cqwkz3yhgxx1 X-Rspamd-Queue-Id: 89ED010000A X-HE-Tag: 1673897098-302993 X-HE-Meta: U2FsdGVkX1+8uzE7zLwM7Rkznwvlfj3s5t6XgYihCwXro4dE2c9YFtdDChaabW5xbQUt640DomtAOtre4SCv0rtZKMyNnlGI1LAiUOQSji5Xc0j8qhmhcth3CKSTTymxS65y9+1Ua8TStXBg3hLu2r5aXTxj46916x00L3Uog8C8owkvR1DxpPlTDgOMfoI0CQL4uRF3RH1CiMQi8IqtOCjvUFLQNTMnvqaIPAkc/wBZavwYyvm105VztiWp15rH6PyW7vina7pbzvkniLonmR5+s97LkVU9VyzXM0+YJ4Uk3UlNnt9AzN9u2DWr71U96aCJ9FDEnvaZh9sgBJG50HJUw40kQ0dHJLKxagDJCdV3eLBjPoRns66wTJGfb7h3f0NdTWQoQ70OkBGdeGHM1XaNCGCx9aWtXXUn5ONDyXv4/cUIniyLSugzh/YgWhFpxGyERjjh0gzdNO6xV0UptWQEYllzzGtxm+DsmM/Xx6WFNvcixpIdyGP8YNOFl2C7w8rVuMw5++8CW+rJyzfmKi6rwSfPITI6aEbxLYj44tPQ6GIRNj8T/fWwSz5J2CP45uXJNTW1zVqbrte7dOBHn2HWwVXIphEJke1SNhafYcqn8qoeJ3p+8uhEfX5HMuZGYHS+kl0+npqyCQEdkmGF//1x/ZAXumI+9atfozzZjzWxeu7ecc2+JG7+83UiamEqLc4EH/16zEWY68TN7cpxB30JenmZ8Eh5mgWyGRG7nYPuhFuayVZwO/RHT9KcElgtHTdN/uZNkyUrmdiedw2Xjx58MYk2EuiPbB97GzJHY9TzHPr5qTrSKwMIDS9HsFDMNCw9ULHPPbwZBpa2vDQ6LK9wI5y+endiy6FN7D3e/Up7zdk/krOq4OLzCYWmGiTGi6IaQuH8HxuPwCdqLvybc5ir7jORk5aaovpTgdogFni9/o7mAIjq2Q== 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: The only caller of inode_attach_wb() which doesn't pass NULL already has a folio, so convert the whole call-chain to take folios. Signed-off-by: Matthew Wilcox (Oracle) --- fs/fs-writeback.c | 6 +++--- include/linux/writeback.h | 12 ++++++------ mm/page-writeback.c | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index 6fba5a52127b..12f60f1ed2a0 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c @@ -237,7 +237,7 @@ void wb_wait_for_completion(struct wb_completion *done) static atomic_t isw_nr_in_flight = ATOMIC_INIT(0); static struct workqueue_struct *isw_wq; -void __inode_attach_wb(struct inode *inode, struct page *page) +void __inode_attach_wb(struct inode *inode, struct folio *folio) { struct backing_dev_info *bdi = inode_to_bdi(inode); struct bdi_writeback *wb = NULL; @@ -245,8 +245,8 @@ void __inode_attach_wb(struct inode *inode, struct page *page) if (inode_cgwb_enabled(inode)) { struct cgroup_subsys_state *memcg_css; - if (page) { - memcg_css = mem_cgroup_css_from_page(page); + if (folio) { + memcg_css = mem_cgroup_css_from_page(&folio->page); wb = wb_get_create(bdi, memcg_css, GFP_ATOMIC); } else { /* must pin memcg_css, see wb_get_create() */ diff --git a/include/linux/writeback.h b/include/linux/writeback.h index 2554b71765e9..3f1491b07474 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h @@ -207,7 +207,7 @@ static inline void wait_on_inode(struct inode *inode) #include #include -void __inode_attach_wb(struct inode *inode, struct page *page); +void __inode_attach_wb(struct inode *inode, struct folio *folio); void wbc_attach_and_unlock_inode(struct writeback_control *wbc, struct inode *inode) __releases(&inode->i_lock); @@ -222,16 +222,16 @@ bool cleanup_offline_cgwb(struct bdi_writeback *wb); /** * inode_attach_wb - associate an inode with its wb * @inode: inode of interest - * @page: page being dirtied (may be NULL) + * @folio: folio being dirtied (may be NULL) * * If @inode doesn't have its wb, associate it with the wb matching the - * memcg of @page or, if @page is NULL, %current. May be called w/ or w/o + * memcg of @folio or, if @folio is NULL, %current. May be called w/ or w/o * @inode->i_lock. */ -static inline void inode_attach_wb(struct inode *inode, struct page *page) +static inline void inode_attach_wb(struct inode *inode, struct folio *folio) { if (!inode->i_wb) - __inode_attach_wb(inode, page); + __inode_attach_wb(inode, folio); } /** @@ -290,7 +290,7 @@ static inline void wbc_init_bio(struct writeback_control *wbc, struct bio *bio) #else /* CONFIG_CGROUP_WRITEBACK */ -static inline void inode_attach_wb(struct inode *inode, struct page *page) +static inline void inode_attach_wb(struct inode *inode, struct folio *folio) { } diff --git a/mm/page-writeback.c b/mm/page-writeback.c index 5e892f20bed7..92b90d2ab513 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c @@ -2652,7 +2652,7 @@ static void folio_account_dirtied(struct folio *folio, struct bdi_writeback *wb; long nr = folio_nr_pages(folio); - inode_attach_wb(inode, &folio->page); + inode_attach_wb(inode, folio); wb = inode_to_wb(inode); __lruvec_stat_mod_folio(folio, NR_FILE_DIRTY, nr); -- 2.35.1