Re: [PATCH 15/17] configfs: replace __get_free_pages() with kzalloc()

From: Jan Kara

Date: Mon May 25 2026 - 12:24:15 EST


On Sat 23-05-26 20:54:27, Mike Rapoport (Microsoft) wrote:
> configfs allocates staging buffers __get_free_pages().
>
> kmalloc() is a better API for such use and it also provides better
> scalability and more debugging possibilities.
>
> Replace use of __get_free_pages() with kzalloc().
>
> Signed-off-by: Mike Rapoport (Microsoft) <rppt@xxxxxxxxxx>

Looks good. Feel free to add:

Reviewed-by: Jan Kara <jack@xxxxxxx>

Honza

> ---
> fs/configfs/file.c | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/fs/configfs/file.c b/fs/configfs/file.c
> index ef8c3cd10cc6..a48cece775a3 100644
> --- a/fs/configfs/file.c
> +++ b/fs/configfs/file.c
> @@ -59,7 +59,7 @@ static int fill_read_buffer(struct file *file, struct configfs_buffer *buffer)
> ssize_t count = -ENOENT;
>
> if (!buffer->page)
> - buffer->page = (char *) get_zeroed_page(GFP_KERNEL);
> + buffer->page = kzalloc(PAGE_SIZE, GFP_KERNEL);
> if (!buffer->page)
> return -ENOMEM;
>
> @@ -184,7 +184,7 @@ static int fill_write_buffer(struct configfs_buffer *buffer,
> int copied;
>
> if (!buffer->page)
> - buffer->page = (char *)__get_free_pages(GFP_KERNEL, 0);
> + buffer->page = kmalloc(PAGE_SIZE, GFP_KERNEL);
> if (!buffer->page)
> return -ENOMEM;
>
> @@ -381,8 +381,7 @@ static int configfs_release(struct inode *inode, struct file *filp)
> struct configfs_buffer *buffer = filp->private_data;
>
> module_put(buffer->owner);
> - if (buffer->page)
> - free_page((unsigned long)buffer->page);
> + kfree(buffer->page);
> mutex_destroy(&buffer->mutex);
> kfree(buffer);
> return 0;
>
> --
> 2.53.0
>
--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR