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 61EB4C369D9 for ; Wed, 30 Apr 2025 18:11:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 36B946B00C4; Wed, 30 Apr 2025 14:11:28 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2F8546B00C5; Wed, 30 Apr 2025 14:11:28 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0F8166B00C7; Wed, 30 Apr 2025 14:11:28 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id D95986B00C4 for ; Wed, 30 Apr 2025 14:11:27 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 56457BF82C for ; Wed, 30 Apr 2025 18:11:29 +0000 (UTC) X-FDA: 83391502698.29.581B9F1 Received: from mail-pg1-f172.google.com (mail-pg1-f172.google.com [209.85.215.172]) by imf17.hostedemail.com (Postfix) with ESMTP id 456754000C for ; Wed, 30 Apr 2025 18:11:27 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=GzmhveNC; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf17.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.215.172 as permitted sender) smtp.mailfrom=ryncsn@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746036687; a=rsa-sha256; cv=none; b=hh1EsQYEKO+OuF7LHvtijrxnebl+uoUoUDLT9lKNj4mq1AHxkoBymSZOs+s5fzDDtUKWBR 5ev+gyDVQ3tnwdWXKEaAi5fl2wTIJJrESoEYzbdYuXj1RbsoJPrSQ7uF9o0ny47LDvKQoa 2kbf0KR/p9MwQm03RgmdmBBfguHvIA4= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=GzmhveNC; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf17.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.215.172 as permitted sender) smtp.mailfrom=ryncsn@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1746036687; h=from:from:sender:reply-to: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=ABVuvP5TNG4tVYGMuC//l3k1Ki5yFOjDY70WGpcFOzo=; b=hxJ7L+38yBR8XqYp3LB086nCxl/Lzi8X680MKP8pJoDXJvH8FvSSdSiO4hEus1MVSOExX3 OtnaHBxrN6OKGxeYBBkNVVZsoW7a5jvvukdZHp6wSsOK0yCUxM9/9shLk+aY0XBF+OhErU c7yQgPULPiJRVrfp+/1q2ZX8i8dK5iM= Received: by mail-pg1-f172.google.com with SMTP id 41be03b00d2f7-b0b2d0b2843so129379a12.2 for ; Wed, 30 Apr 2025 11:11:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746036685; x=1746641485; darn=kvack.org; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=ABVuvP5TNG4tVYGMuC//l3k1Ki5yFOjDY70WGpcFOzo=; b=GzmhveNCxYZrqLWYZfrsp6PSA1xlp+GGrfu5oHYKN+NaKCE+4Qrv1lq4kcfxiLrT5o kwF7yJTgbFexO5pyTv3xtbvycqsjmZYaGIqdkrcTCBhzqY43NdcoYFYsxvHkhlAksxQV I++ScRNSoTnvvg+Tyy6X2HwujBt1P5xGAOZiYv/KiZGzqzeTDVBAIyzn1fA/5GTllWl/ tQShEjDJIbes/2z08ChVEXg6zdX+adq7g3vKLlW5Nxx1eoM/J8bMM6nqoPBjVj6sVQGX nhJ4LaIyTO2K4a/8eBQk5mVGpZH+qZxGsLdoYJm3MFGDXXs7sgg66o5JegxxCibegxgp bDnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746036685; x=1746641485; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=ABVuvP5TNG4tVYGMuC//l3k1Ki5yFOjDY70WGpcFOzo=; b=mAnjjKegsh9V8iBokGWumA8nhCu83MV6y9bPnlNB1hneMNgdCrMaQOKziFkB/2h0Zc Q8+l0yFeKVxebMWyWWpiFOZkzVD4OCvUJPcZbOEgwDpQ7lt1tAgIopZ8GEI7+6d/BwBa GGzqFajnWkc+Si5T3sfu7Sagwm/ubrgPigrDclqT4PX+zMSykTxtEKG0sYh2M24Y8K1M OlUjIBcMhQe9C97utcCaaUvGMQcUxvFTz37C7ShnS/sBg6WbhJ/4Fs7UXpqE2wHUcfgQ ePIPN759KRuRxyJ95ngaUGhSTxfGeEhhEbG5cyjhSc2AqiQHSqXJWSh07X8fiRcweZB8 UCbQ== X-Gm-Message-State: AOJu0Yw1a4rdHMAtkf5axJamgPB/umhGzQQw/xBo1NNQUK8l+50dDgrQ 1vqCuP6Zxx4CCN8T8bbDvsRr2kQTwy91TjCxBlSjg1IP0NvWddLc6AdEOH4xCagSKg== X-Gm-Gg: ASbGncsR7KZVvEa2EN6XrH71MD5BjPAmALx0EXCvCohLtZYeDyTrfzRNzp5G1zuIsqw v6JtkzjTiPWeLQLPmIpB6OT3EH/Aok8UdW50xro9ivk2hyGguUh7c8n/qipZ26Mc7ruwBkd5lMz ah+YTcCdjLyRnC0c5SVLo0ZxaGI1OSBIzZAGqaCY+4kXoFATMCT+XPJo17tZkcHA04pvs3iGRxV jqS3fjjn03U8r3a8LhHoXdw1Ghq0EckssCE7Vm6rBBBhfK86wxdP+nBb3x4Gi867Kw+MeV4qVWH ivChzLFav3NtLPAdLe8EbyRuNMwwRhVnnPPmcPgHIo5c+AP5A3eA+8cc5FTSMQ== X-Google-Smtp-Source: AGHT+IGvk0oJWttNM6c0zFmz2EsnDvT1Lr3GHsue6PfHLv/bA327BK4ptz41QX/l91eCNpM4QRO2Ag== X-Received: by 2002:a05:6a21:1583:b0:1f5:6d00:ba05 with SMTP id adf61e73a8af0-20a89a012bcmr5766473637.38.1746036685092; Wed, 30 Apr 2025 11:11:25 -0700 (PDT) Received: from KASONG-MC4.tencent.com ([106.37.122.198]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74039947976sm1983822b3a.84.2025.04.30.11.11.21 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 30 Apr 2025 11:11:24 -0700 (PDT) From: Kairui Song To: linux-mm@kvack.org Cc: Andrew Morton , Matthew Wilcox , Hugh Dickins , Chris Li , David Hildenbrand , Yosry Ahmed , "Huang, Ying" , Nhat Pham , Johannes Weiner , linux-kernel@vger.kernel.org, Kairui Song Subject: [PATCH v3 5/6] mm: move folio_index to mm/swap.h and remove no longer needed helper Date: Thu, 1 May 2025 02:10:51 +0800 Message-ID: <20250430181052.55698-6-ryncsn@gmail.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250430181052.55698-1-ryncsn@gmail.com> References: <20250430181052.55698-1-ryncsn@gmail.com> Reply-To: Kairui Song MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 456754000C X-Stat-Signature: ay3tocycbhikuiyts9gxuuds58gd8xh7 X-Rspam-User: X-HE-Tag: 1746036687-484374 X-HE-Meta: U2FsdGVkX1+xaxPrRmyKM/D/DOoWqUO8emN9SThgt6l/7HwTXEGN5z4q/PxBw9H2JvSKOtJudM11LrwLsyHOQvtaO5AS9pe9toVvkhA9KHSIMgKUdL0m+5qlBxJt/VN4KETX8zwdhQUCpwlXWuN+U+23bauaRLtDLyLq800lO/Lj9ifkSRF2O7fJ/fniQb83pMTux1EQDFudchrJ27N9DhigHHvxyuE1Ps21iFQQTp8UMT70JYpb4QpZPWlfSZRoIjOpe8PkMg6E8TQNLrMpNMShQZ8WMH+6hUqkeBFe7Pq6IjLpMXh/mgG/wrpgJ+Euei0LmRfxEoJTOp4Lv5h+xgbGIUl+EAsq9sWxpm1d2niHr/XmrAQ/KhLmABP7APSR/ANWbobvKHxeaYGNg+Hk1jMKmDCluk9sBiTkWQJqZN8kiocH/qWaWBBjh3curPkHOA6dlznzs7OHa1wfHkl+18h6zxRfwj9gVE4Qar3Pk7NPutXisEv7BLUlw83EE4ATWyFEarYYUJwosm8s7vXJxT5R9aSb2Rd7oo3a6/30+MU26NsI5/OmQj6zql5STGPSIUdN0KzIq7VoBX+mGBn5sgu1f/dHJpXE8W3SdHh10T//CTbe+Ic9Jazx3CMNgvroXbEszCXOzUtLkTjmOC8rNWedZix5/fIKnSbzIxJwmMKEnEhbUtDcpq0q5KPYfplLxcZKylYNr9RL5zcBmHB+Q1IAt92w6tokdYlV1+x5k+4q52nnOtQPg8eGqvl+uBPkdueqqJqTcWuuMEr5TD4qu/oF7cPBxnZam7Nh2jGgp5kSTNoztwCdiLT0AFPDYewOvS7VTa5NZX1NfnWFToCN1gS1F+7v2b2C8jyn5HOpP5MyvDdHOLdWbuzpaGLREPiBF92Mi/msHjmtRTxqTAbGCr7PcQ7xbbDPPC+dkLySkW6o47NTpR3A9VsIuOY88hTdfgBKCR3M3L47fXpFn45 nAqKzlHe mDBewIfG183H0K7/5TNoc7tiD0Rd8+32jZ7tcMD9eMh8wZigOeZe2MjfRVBklL6GFwyQMuXiiV6MS7SC9H3nMhUB1h2k/CaJPUFnB5tVNoPj5xEJ5Rz5cqwSFOQTgnO4YuwHGAt6Gf5rbylBJq+uokG0f5dBiHp/Yea7bSfozXHOOWv5Wc+ehHIduinKYd52aqn355Gd4Ui3lK3+ZvFn1F+JkWVrLgbmPbQCsoVfCfzDa1VPenbMFMxoaAsTXEMqter9XW6f2JNm/SrwsAU3I/wnXfqZA4CY0crtDUMwA/DEG/7kU2U1YWnHKxgTSv+Z5h+aLloE4Kx8hoxdG557x5JLB/WzjgKvNpOH4R61QKGoyfDUAbXqj4abaFWIc7Y6xBjJXbZurxwyV8phc5f0/2S0I3bK4A4qTZ+61zhZXjvPBpJJDT40YCAfjVaima36Sm2dcqqgaur+il3zfm4j8jW12ndtL+2AwtRv4wct41kG9RvAzK7JHrXQjJHdHYhM7LWiQWPOqGnfEKkiGhIuEGu+9W1IKyFja0UDYOJpMTlYk/y3ENi7u5XaU+BouIXB2325CxED7lCd353POtN2J326aMNOxb8VGx1BuNzESAYRRhPnVlpiNOT4kZShCUtYyJZWjDEfKfTVfjlIQ9lrdMyYvdg== 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: From: Kairui Song There are no remaining users of folio_index() outside the mm subsystem. Move it to mm/swap.h to co-locate it with swap_cache_index(), eliminating a forward declaration, and a function call overhead. Also remove the helper that was used to fix circular header dependency issue. Signed-off-by: Kairui Song --- include/linux/pagemap.h | 20 -------------------- mm/gup.c | 1 + mm/memfd.c | 1 + mm/migrate.c | 1 + mm/page-writeback.c | 1 + mm/swap.h | 18 ++++++++++++++++++ mm/swapfile.c | 6 ------ 7 files changed, 22 insertions(+), 26 deletions(-) diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index 0c9aff5ec77f..627cb0338e5d 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -884,26 +884,6 @@ static inline struct page *grab_cache_page_nowait(struct address_space *mapping, mapping_gfp_mask(mapping)); } -extern pgoff_t __folio_swap_cache_index(struct folio *folio); - -/** - * folio_index - File index of a folio. - * @folio: The folio. - * - * For a folio which is either in the page cache or the swap cache, - * return its index within the address_space it belongs to. If you know - * the page is definitely in the page cache, you can look at the folio's - * index directly. - * - * Return: The index (offset in units of pages) of a folio in its file. - */ -static inline pgoff_t folio_index(struct folio *folio) -{ - if (unlikely(folio_test_swapcache(folio))) - return __folio_swap_cache_index(folio); - return folio->index; -} - /** * folio_next_index - Get the index of the next folio. * @folio: The current folio. diff --git a/mm/gup.c b/mm/gup.c index f32168339390..91bbf57579f0 100644 --- a/mm/gup.c +++ b/mm/gup.c @@ -26,6 +26,7 @@ #include #include "internal.h" +#include "swap.h" struct follow_page_context { struct dev_pagemap *pgmap; diff --git a/mm/memfd.c b/mm/memfd.c index c64df1343059..ab367e61553d 100644 --- a/mm/memfd.c +++ b/mm/memfd.c @@ -20,6 +20,7 @@ #include #include #include +#include "swap.h" /* * We need a tag: a new tag would expand every xa_node by 8 bytes, diff --git a/mm/migrate.c b/mm/migrate.c index f3ee6d8d5e2e..662e5dc44b33 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -50,6 +50,7 @@ #include #include "internal.h" +#include "swap.h" bool isolate_movable_page(struct page *page, isolate_mode_t mode) { diff --git a/mm/page-writeback.c b/mm/page-writeback.c index 20e1d76f1eba..9ff44b64d3d6 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c @@ -41,6 +41,7 @@ #include #include "internal.h" +#include "swap.h" /* * Sleep at most 200ms at a time in balance_dirty_pages(). diff --git a/mm/swap.h b/mm/swap.h index 6f4a3f927edb..521bf510ec75 100644 --- a/mm/swap.h +++ b/mm/swap.h @@ -201,4 +201,22 @@ static inline int swap_zeromap_batch(swp_entry_t entry, int max_nr, #endif /* CONFIG_SWAP */ +/** + * folio_index - File index of a folio. + * @folio: The folio. + * + * For a folio which is either in the page cache or the swap cache, + * return its index within the address_space it belongs to. If you know + * the folio is definitely in the page cache, you can look at the folio's + * index directly. + * + * Return: The index (offset in units of pages) of a folio in its file. + */ +static inline pgoff_t folio_index(struct folio *folio) +{ + if (unlikely(folio_test_swapcache(folio))) + return swap_cache_index(folio->swap); + return folio->index; +} + #endif /* _MM_SWAP_H */ diff --git a/mm/swapfile.c b/mm/swapfile.c index b86637cfb17a..9fe58284079d 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -3671,12 +3671,6 @@ struct address_space *swapcache_mapping(struct folio *folio) } EXPORT_SYMBOL_GPL(swapcache_mapping); -pgoff_t __folio_swap_cache_index(struct folio *folio) -{ - return swap_cache_index(folio->swap); -} -EXPORT_SYMBOL_GPL(__folio_swap_cache_index); - /* * add_swap_count_continuation - called when a swap count is duplicated * beyond SWAP_MAP_MAX, it allocates a new page and links that to the entry's -- 2.49.0