diff options
| author | Mike Rapoport (Microsoft) <rppt@kernel.org> | 2026-05-23 20:54:22 +0300 |
|---|---|---|
| committer | Christian Brauner <brauner@kernel.org> | 2026-05-27 16:12:24 +0300 |
| commit | 2f6702dc6fdcf0ccc85417140e9ee1ce6a64863c (patch) | |
| tree | b84e59ed478baefe7b965cd1257979e0b1e6f66c | |
| parent | de9f4f0b2c0f31c3a9483dedd0e9bb7dcb409a13 (diff) | |
| download | linux-2f6702dc6fdcf0ccc85417140e9ee1ce6a64863c.tar.xz | |
jbd2: replace __get_free_pages() with kmalloc()
jbd2_alloc() falls back from kmem_cache_alloc() to __get_free_pages() for
allocations larger than PAGE_SIZE.
But kmalloc() can handle such cases with essentially the same fallback.
Replace use of __get_free_pages() with kmalloc() and simplify
jbd2_free() as both kmem_cache_alloc() and kmalloc() allocations can be
freed with kfree().
Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
Link: https://patch.msgid.link/20260523-b4-fs-v1-10-275e36a83f0e@kernel.org
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
| -rw-r--r-- | fs/jbd2/journal.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c index 4f397fcdb13c..1137b471e490 100644 --- a/fs/jbd2/journal.c +++ b/fs/jbd2/journal.c @@ -2784,7 +2784,7 @@ void *jbd2_alloc(size_t size, gfp_t flags) if (size < PAGE_SIZE) ptr = kmem_cache_alloc(get_slab(size), flags); else - ptr = (void *)__get_free_pages(flags, get_order(size)); + ptr = kmalloc(size, flags); /* Check alignment; SLUB has gotten this wrong in the past, * and this can lead to user data corruption! */ @@ -2795,10 +2795,7 @@ void *jbd2_alloc(size_t size, gfp_t flags) void jbd2_free(void *ptr, size_t size) { - if (size < PAGE_SIZE) - kmem_cache_free(get_slab(size), ptr); - else - free_pages((unsigned long)ptr, get_order(size)); + kfree(ptr); }; /* |
