From nobody Wed Feb 11 08:12:20 2026 Received: from mail-oo1-f47.google.com (mail-oo1-f47.google.com [209.85.161.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2DDC834FF69 for ; Sun, 8 Feb 2026 21:58:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.161.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770587929; cv=none; b=CFS++6A4sPLxrbl/mysTABMV90kPBKdaF2WzvNllj7ctouy27CRYyquKvLL/2ycAyU/8GD5MAhk/UINKYGAQWTr3wFhtD2PJLm3fab5a4UA6BunlTRXDPaD7rKb+IPupEs4XrgDTid9xVFQVx1mrmJlZEw6dwyWIMKUljihF52o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770587929; c=relaxed/simple; bh=ygHLVQvf13Cv8oj9q9pBIyTvrB7Fok7pLI1My4ZIj50=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RuHFqyGEjAVoLC4wCf+EzW0e7855o2OstIyGx644quN6ILNzynsViN9vZLvFLz+fKxoLkOWW3q6RAMcpf0dK2QoJ0DToky9t2ku/qAxNiW6nxs2f5ycMDNYS2gBaZPpN2L+jJLff3gaAIgH+ZtwGjbJzYpKx4bou3MBox0Esymg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=K23cYOG3; arc=none smtp.client-ip=209.85.161.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="K23cYOG3" Received: by mail-oo1-f47.google.com with SMTP id 006d021491bc7-6610b05b37dso3223768eaf.2 for ; Sun, 08 Feb 2026 13:58:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770587928; x=1771192728; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=bdck4kEatqeWpIk5x4ugOl36FqvjbgCoyttMgxaBORw=; b=K23cYOG3uBJ//B+ooZw/JR7ZMb4vKfan8dQhrBwUXhcADUEs+pw25TNDO88bc92ACw oIMKRe467U3MkVWa14TBdEe/cyWSTHZu/YjX6N0O4ip/YjQhj9vIeaAY8BM6B9eMZeC3 nVQ7FR0SxEdgAty9DzTKDHriSusE5b6Me1nlrYRKDlvQEXhPkWV35DgCqWVkIN5pDPe0 ptJcKn+QARKmbxST9rlAQ1rxRp/otXfPjrK/uDTNCequcJtX2ZkLdROdbEtt+fknwspt wvO2b5+uTE8lCmtjX87nC6icbAD2HmfqgVmQtG+C2H3qOF/1q/m2FCzdgialr7uxYFK6 3YZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770587928; x=1771192728; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=bdck4kEatqeWpIk5x4ugOl36FqvjbgCoyttMgxaBORw=; b=iIqEs6RICZgj8lzfM/+N4NdGV00dS/aZLTr4ACvZT+tLlcjf3lh3r9ZLYHZekhDP3V XugPg37cEmdhWbuESryB909U3GkeD6Bvvfsd05gQ64w4fZ7fmfhREFCv5RNCD+DNt2kb EeOIvtgEmt8BeqgcMYQKNZrmL0VnpJz+Whs1w3xk2dF/DsCYIW6Zd0mktI+M9fIIku5h Y8j0dobaSJ9kZIZj83R41wi0itouNJRvH8BP4+v5KkZBmrxLvb1S0DoIrTb+++3NenM4 Rbuf7pjfo5MDpvbaAyQqsG6XiJolUQTV6dUyXtB6AsjtfChkNELIZBRS9XGIjP83UZoA W3uQ== X-Forwarded-Encrypted: i=1; AJvYcCUxDDSjFRtcqW4P3Bm+hlsHAzhjXm4wIPEwgSYH2TlaMa3/biN3eBk6jiweCl2oaQSA6Tjo7o7g1sqRlfg=@vger.kernel.org X-Gm-Message-State: AOJu0YyuCXrUCNQ88udrG+4Pez0qKRuXe/lQ5wDyUp5Jj4/nyz/J8PC1 d7kUWwKUo0KqPpqxD2yB1oW7hAnhsFWJ3ni3s/xYRVNGpgdHUzkeLMwV X-Gm-Gg: AZuq6aKqBA3fiapJ/FguJ3XjYFCebKxR4zBCSNyEFUVsQ+siPM7L9bd162Fuhg+148d vjLlTDWfDHEzOH4imaQC9tFoGHmMXsEAEe5jlxb7uXbF9IUs2WFt2i2SOmRcBmQ+qKqW9dOHXO5 roHSD91DN927uRYKbiYR9K7iVg/KvnWC3wZHHIu0D3BerEMm3xqB6LATjVJy5oXOuUmRpZ0ZPew oQZBHo2nFjZRIWTE4yPVFmh+2fdgysQ+jZfVDEiqGhv81QOg6IgU++WvI4X6zLOm02xXK+tQu9u 3j8ilqtqJ/xPdb0v7dOM4dH1+t310x6Doujw7+gLpYuWP/fk7ewPjslTavKOClzeBgHNMF2CD6a P7LnTgQIw1VIlaf6/m64gs9UD6xZRYPH9bqWha+b5KBiB2T3t2KnoegEpfLva//VYIMpsLU0DEM lekgZuwnYoWypPSJq7t2yexxSng0fzr737Am9ETBcTn54= X-Received: by 2002:a05:6820:986:b0:65f:6655:9db3 with SMTP id 006d021491bc7-66d3262bbfamr4616076eaf.5.1770587927690; Sun, 08 Feb 2026 13:58:47 -0800 (PST) Received: from localhost ([2a03:2880:10ff:5::]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-670c3849609sm832927eaf.0.2026.02.08.13.58.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 08 Feb 2026 13:58:46 -0800 (PST) From: Nhat Pham To: linux-mm@kvack.org Cc: akpm@linux-foundation.org, hannes@cmpxchg.org, hughd@google.com, yosry.ahmed@linux.dev, mhocko@kernel.org, roman.gushchin@linux.dev, shakeel.butt@linux.dev, muchun.song@linux.dev, len.brown@intel.com, chengming.zhou@linux.dev, kasong@tencent.com, chrisl@kernel.org, huang.ying.caritas@gmail.com, ryan.roberts@arm.com, shikemeng@huaweicloud.com, viro@zeniv.linux.org.uk, baohua@kernel.org, bhe@redhat.com, osalvador@suse.de, lorenzo.stoakes@oracle.com, christophe.leroy@csgroup.eu, pavel@kernel.org, kernel-team@meta.com, linux-kernel@vger.kernel.org, cgroups@vger.kernel.org, linux-pm@vger.kernel.org, peterx@redhat.com, riel@surriel.com, joshua.hahnjy@gmail.com, npache@redhat.com, gourry@gourry.net, axelrasmussen@google.com, yuanchu@google.com, weixugc@google.com, rafael@kernel.org, jannh@google.com, pfalcato@suse.de, zhengqi.arch@bytedance.com Subject: [PATCH v3 02/20] swap: rearrange the swap header file Date: Sun, 8 Feb 2026 13:58:15 -0800 Message-ID: <20260208215839.87595-3-nphamcs@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260208215839.87595-1-nphamcs@gmail.com> References: <20260208215839.87595-1-nphamcs@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" In the swap header file (include/linux/swap.h), group the swap API into the following categories: 1. Lifecycle swap functions (i.e the function that changes the reference count of the swap entry). 2. Swap cache API. 3. Physical swapfile allocator and swap device API. Also remove extern in the functions that are rearranged. This is purely a clean up. No functional change intended. Signed-off-by: Nhat Pham --- include/linux/swap.h | 53 +++++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/include/linux/swap.h b/include/linux/swap.h index 38ca3df687160..aa29d8ac542d1 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h @@ -423,20 +423,34 @@ extern void __meminit kswapd_stop(int nid); =20 #ifdef CONFIG_SWAP =20 -int add_swap_extent(struct swap_info_struct *sis, unsigned long start_page, - unsigned long nr_pages, sector_t start_block); -int generic_swapfile_activate(struct swap_info_struct *, struct file *, - sector_t *); - +/* Lifecycle swap API (mm/swapfile.c) */ +int folio_alloc_swap(struct folio *folio); +bool folio_free_swap(struct folio *folio); +void put_swap_folio(struct folio *folio, swp_entry_t entry); +void swap_shmem_alloc(swp_entry_t, int); +int swap_duplicate(swp_entry_t); +int swapcache_prepare(swp_entry_t entry, int nr); +void swap_free_nr(swp_entry_t entry, int nr_pages); +void free_swap_and_cache_nr(swp_entry_t entry, int nr); +int __swap_count(swp_entry_t entry); +bool swap_entry_swapped(struct swap_info_struct *si, swp_entry_t entry); +int swp_swapcount(swp_entry_t entry); + +/* Swap cache API (mm/swap_state.c) */ static inline unsigned long total_swapcache_pages(void) { return global_node_page_state(NR_SWAPCACHE); } - -void free_swap_cache(struct folio *folio); void free_folio_and_swap_cache(struct folio *folio); void free_pages_and_swap_cache(struct encoded_page **, int); -/* linux/mm/swapfile.c */ +void free_swap_cache(struct folio *folio); + +/* Physical swap allocator and swap device API (mm/swapfile.c) */ +int add_swap_extent(struct swap_info_struct *sis, unsigned long start_page, + unsigned long nr_pages, sector_t start_block); +int generic_swapfile_activate(struct swap_info_struct *, struct file *, + sector_t *); + extern atomic_long_t nr_swap_pages; extern long total_swap_pages; extern atomic_t nr_rotate_swap; @@ -452,26 +466,15 @@ static inline long get_nr_swap_pages(void) return atomic_long_read(&nr_swap_pages); } =20 -extern void si_swapinfo(struct sysinfo *); -int folio_alloc_swap(struct folio *folio); -bool folio_free_swap(struct folio *folio); -void put_swap_folio(struct folio *folio, swp_entry_t entry); -extern swp_entry_t get_swap_page_of_type(int); -extern int add_swap_count_continuation(swp_entry_t, gfp_t); -extern void swap_shmem_alloc(swp_entry_t, int); -extern int swap_duplicate(swp_entry_t); -extern int swapcache_prepare(swp_entry_t entry, int nr); -extern void swap_free_nr(swp_entry_t entry, int nr_pages); -extern void free_swap_and_cache_nr(swp_entry_t entry, int nr); +void si_swapinfo(struct sysinfo *); +swp_entry_t get_swap_page_of_type(int); +int add_swap_count_continuation(swp_entry_t, gfp_t); int swap_type_of(dev_t device, sector_t offset); int find_first_swap(dev_t *device); -extern unsigned int count_swap_pages(int, int); -extern sector_t swapdev_block(int, pgoff_t); -extern int __swap_count(swp_entry_t entry); -extern bool swap_entry_swapped(struct swap_info_struct *si, swp_entry_t en= try); -extern int swp_swapcount(swp_entry_t entry); +unsigned int count_swap_pages(int, int); +sector_t swapdev_block(int, pgoff_t); struct backing_dev_info; -extern struct swap_info_struct *get_swap_device(swp_entry_t entry); +struct swap_info_struct *get_swap_device(swp_entry_t entry); sector_t swap_folio_sector(struct folio *folio); =20 static inline void put_swap_device(struct swap_info_struct *si) --=20 2.47.3