]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
filemap: remove redundant folio_test_large check in filemap_free_folio
authorGuanjun <guanjun@linux.alibaba.com>
Thu, 13 Feb 2025 05:56:12 +0000 (13:56 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 17 Mar 2025 05:06:16 +0000 (22:06 -0700)
The folio_test_large() check in filemap_free_folio() is unnecessary
because folio_nr_pages(), which is called internally already performs this
check.  Removing the redundant condition simplifies the code and avoids
double validation.

This change improves code readability and reduces unnecessary operations
in the folio freeing path.

Link: https://lkml.kernel.org/r/20250213055612.490993-1-guanjun@linux.alibaba.com
Signed-off-by: Guanjun <guanjun@linux.alibaba.com>
Acked-by: David Hildenbrand <david@redhat.com>
Cc: Matthew Wilcox <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/filemap.c

index 6e3d27993b67690cdabd53539269b30db9a6e6bd..152993a86de3cca9cd9c1cdaa5c1eab28c100c56 100644 (file)
@@ -227,15 +227,12 @@ void __filemap_remove_folio(struct folio *folio, void *shadow)
 void filemap_free_folio(struct address_space *mapping, struct folio *folio)
 {
        void (*free_folio)(struct folio *);
-       int refs = 1;
 
        free_folio = mapping->a_ops->free_folio;
        if (free_folio)
                free_folio(folio);
 
-       if (folio_test_large(folio))
-               refs = folio_nr_pages(folio);
-       folio_put_refs(folio, refs);
+       folio_put_refs(folio, folio_nr_pages(folio));
 }
 
 /**