mm: zswap: modify zswap_compress() to accept a page instead of a folio
authorKanchana P Sridhar <kanchana.p.sridhar@intel.com>
Tue, 1 Oct 2024 05:32:17 +0000 (22:32 -0700)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 11 Nov 2024 08:26:42 +0000 (00:26 -0800)
For zswap_store() to be able to store a large folio by compressing it one
page at a time, zswap_compress() needs to accept a page as input.  This
will allow us to iterate through each page in the folio in zswap_store(),
compress it and store it in the zpool.

Link: https://lkml.kernel.org/r/20241001053222.6944-3-kanchana.p.sridhar@intel.com
Signed-off-by: Kanchana P Sridhar <kanchana.p.sridhar@intel.com>
Reviewed-by: Nhat Pham <nphamcs@gmail.com>
Reviewed-by: Chengming Zhou <chengming.zhou@linux.dev>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Yosry Ahmed <yosryahmed@google.com>
Cc: "Huang, Ying" <ying.huang@intel.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Shakeel Butt <shakeel.butt@linux.dev>
Cc: Usama Arif <usamaarif642@gmail.com>
Cc: Wajdi Feghali <wajdi.k.feghali@intel.com>
Cc: "Zou, Nanhai" <nanhai.zou@intel.com>
Cc: Barry Song <21cnbao@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/zswap.c

index a400324a45a7b783c816359ff8aca4573da30ef1..a62a84b66bd72b9e07f43434e3445bc950d9f83e 100644 (file)
@@ -875,7 +875,7 @@ static int zswap_cpu_comp_dead(unsigned int cpu, struct hlist_node *node)
        return 0;
 }
 
-static bool zswap_compress(struct folio *folio, struct zswap_entry *entry)
+static bool zswap_compress(struct page *page, struct zswap_entry *entry)
 {
        struct crypto_acomp_ctx *acomp_ctx;
        struct scatterlist input, output;
@@ -893,7 +893,7 @@ static bool zswap_compress(struct folio *folio, struct zswap_entry *entry)
 
        dst = acomp_ctx->buffer;
        sg_init_table(&input, 1);
-       sg_set_folio(&input, folio, PAGE_SIZE, 0);
+       sg_set_page(&input, page, PAGE_SIZE, 0);
 
        /*
         * We need PAGE_SIZE * 2 here since there maybe over-compression case,
@@ -1457,7 +1457,7 @@ bool zswap_store(struct folio *folio)
                mem_cgroup_put(memcg);
        }
 
-       if (!zswap_compress(folio, entry))
+       if (!zswap_compress(&folio->page, entry))
                goto put_pool;
 
        entry->swpentry = swp;