summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuanjun <guanjun@linux.alibaba.com>2025-02-13 13:56:12 +0800
committerAndrew Morton <akpm@linux-foundation.org>2025-03-16 22:06:16 -0700
commitb23ceebd63d85135c9a5061a535ea85210f94f3f (patch)
tree2b203ade2d0aaed978be99262b5918d5d2539b6f
parent18ea595a07bcf931ec6efae5c1f8a0d9a440ed97 (diff)
filemap: remove redundant folio_test_large check in filemap_free_folio
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>
-rw-r--r--mm/filemap.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/mm/filemap.c b/mm/filemap.c
index 6e3d27993b67..152993a86de3 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -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));
}
/**