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 2FD16CCA47F for ; Fri, 17 Jun 2022 17:50:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7970A6B009A; Fri, 17 Jun 2022 13:50:30 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E03026B009F; Fri, 17 Jun 2022 13:50:29 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 969526B0082; Fri, 17 Jun 2022 13:50:29 -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 B666B6B007B for ; Fri, 17 Jun 2022 13:50:27 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 8C5E520705 for ; Fri, 17 Jun 2022 17:50:27 +0000 (UTC) X-FDA: 79588467294.27.8A2E158 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf04.hostedemail.com (Postfix) with ESMTP id 2620240025 for ; Fri, 17 Jun 2022 17:50:27 +0000 (UTC) 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=WU5TO0UiXi4YkFW2xWsOMUiU3uyZ3UeR6FV3m+qdOto=; b=UDTfG/4C11R9ecwQUXNzIaqzoT sYs8n3QbF1jTF8VJASeq+ap321azLGXJSAknjL/n+wioXX+m8Hd43efHi9q0ohdgW/W/CKisTXJsF SM/6XcyFRotlMzjictGWsbokzufhBw3CsCr6tBuVvw2onhGWxCtmGOOxR016MsDsXek0LLN9mgSMR +iGO1ofWOi37tLQX9Ay4h4WIepq0DibXU+rcJWjpexWh7UbWeEo7KENMQWuJpVh7RSoRamYk+U/er QdXkVBKLOUbU/YCgVkFds9Z7tDmCFRWR0fXZNPAConGha9O5TqTiyk3Y0aytelW9ep2J5ntfuFnot G2Koc9PA==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1o2G70-0030bu-2r; Fri, 17 Jun 2022 17:50:26 +0000 From: "Matthew Wilcox (Oracle)" To: Andrew Morton Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org Subject: [PATCH 21/22] mm/swap: Convert delete_from_swap_cache() to take a folio Date: Fri, 17 Jun 2022 18:50:19 +0100 Message-Id: <20220617175020.717127-22-willy@infradead.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220617175020.717127-1-willy@infradead.org> References: <20220617175020.717127-1-willy@infradead.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1655488227; a=rsa-sha256; cv=none; b=S+zOgn2NW9b0o8GE74GMNSouc9MlUSVAiL/mfkfTVOyRV2uAKP0lHDnauIA+BamGxB75bV SAYVpoUiuGnPeIusK1RKOjOM/9G/YleGjgz9Id1RgrNmATJt2BMqlksCJALcD3zJFte+Ql YsuVMjUswlangW2zgStNfcXbPS3csIs= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="UDTfG/4C"; dmarc=none; spf=none (imf04.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=1655488227; 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=WU5TO0UiXi4YkFW2xWsOMUiU3uyZ3UeR6FV3m+qdOto=; b=ZElldYiqSBwTGVufugGciUwa2/mYGkwvoAkuzUvngA+3m398Cv1KXcNtA6Nl+JAQ2y2UTr GhRGm4KPeSQ7aexAR0A9kDDch+bCn5KnQZ8jSVTvfWYKaUimnaliGVbE6I3MCe8WbGVfUU eX9SxOfpgVcz95zUvFUpwx7qaxjGOUg= Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="UDTfG/4C"; dmarc=none; spf=none (imf04.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org X-Rspam-User: X-Stat-Signature: a9qcuh7fugcpc4i8p76emy3ooiy181y1 X-Rspamd-Queue-Id: 2620240025 X-Rspamd-Server: rspam08 X-HE-Tag: 1655488227-304344 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: All but one caller already has a folio, so convert it to use a folio. Signed-off-by: Matthew Wilcox (Oracle) --- mm/memory-failure.c | 5 +++-- mm/shmem.c | 4 ++-- mm/swap.h | 4 ++-- mm/swap_state.c | 16 ++++++++-------- mm/swapfile.c | 2 +- 5 files changed, 16 insertions(+), 15 deletions(-) diff --git a/mm/memory-failure.c b/mm/memory-failure.c index bc031939cf39..bd0e15b4876a 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -1049,12 +1049,13 @@ static int me_swapcache_dirty(struct page_state *ps, struct page *p) static int me_swapcache_clean(struct page_state *ps, struct page *p) { + struct folio *folio = page_folio(p); int ret; - delete_from_swap_cache(p); + delete_from_swap_cache(folio); ret = delete_from_lru_cache(p) ? MF_FAILED : MF_RECOVERED; - unlock_page(p); + folio_unlock(folio); if (has_extra_refcount(ps, p, false)) ret = MF_FAILED; diff --git a/mm/shmem.c b/mm/shmem.c index 133c67057d41..7331ed1be014 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -1690,7 +1690,7 @@ static void shmem_set_folio_swapin_error(struct inode *inode, pgoff_t index, return; folio_wait_writeback(folio); - delete_from_swap_cache(&folio->page); + delete_from_swap_cache(folio); spin_lock_irq(&info->lock); /* * Don't treat swapin error folio as alloced. Otherwise inode->i_blocks won't @@ -1788,7 +1788,7 @@ static int shmem_swapin_folio(struct inode *inode, pgoff_t index, if (sgp == SGP_WRITE) folio_mark_accessed(folio); - delete_from_swap_cache(&folio->page); + delete_from_swap_cache(folio); folio_mark_dirty(folio); swap_free(swap); diff --git a/mm/swap.h b/mm/swap.h index 85453110be8e..3684f7f4eac9 100644 --- a/mm/swap.h +++ b/mm/swap.h @@ -38,7 +38,7 @@ int add_to_swap_cache(struct page *page, swp_entry_t entry, gfp_t gfp, void **shadowp); void __delete_from_swap_cache(struct page *page, swp_entry_t entry, void *shadow); -void delete_from_swap_cache(struct page *page); +void delete_from_swap_cache(struct folio *folio); void clear_shadow_from_swap_cache(int type, unsigned long begin, unsigned long end); void free_swap_cache(struct page *page); @@ -140,7 +140,7 @@ static inline void __delete_from_swap_cache(struct page *page, { } -static inline void delete_from_swap_cache(struct page *page) +static inline void delete_from_swap_cache(struct folio *folio) { } diff --git a/mm/swap_state.c b/mm/swap_state.c index 41c6a6053d5c..b9464542c064 100644 --- a/mm/swap_state.c +++ b/mm/swap_state.c @@ -222,22 +222,22 @@ bool add_to_swap(struct folio *folio) } /* - * This must be called only on pages that have + * This must be called only on folios that have * been verified to be in the swap cache and locked. - * It will never put the page into the free list, - * the caller has a reference on the page. + * It will never put the folio into the free list, + * the caller has a reference on the folio. */ -void delete_from_swap_cache(struct page *page) +void delete_from_swap_cache(struct folio *folio) { - swp_entry_t entry = { .val = page_private(page) }; + swp_entry_t entry = folio_swap_entry(folio); struct address_space *address_space = swap_address_space(entry); xa_lock_irq(&address_space->i_pages); - __delete_from_swap_cache(page, entry, NULL); + __delete_from_swap_cache(&folio->page, entry, NULL); xa_unlock_irq(&address_space->i_pages); - put_swap_page(page, entry); - page_ref_sub(page, thp_nr_pages(page)); + put_swap_page(&folio->page, entry); + folio_ref_sub(folio, folio_nr_pages(folio)); } void clear_shadow_from_swap_cache(int type, unsigned long begin, diff --git a/mm/swapfile.c b/mm/swapfile.c index 4ac6a6c876d6..91eab0223d9e 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -1617,7 +1617,7 @@ int try_to_free_swap(struct page *page) if (pm_suspended_storage()) return 0; - delete_from_swap_cache(&folio->page); + delete_from_swap_cache(folio); folio_set_dirty(folio); return 1; } -- 2.35.1