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

Jan Kara <[email protected]> Mon, 25 May 2026 18:22:45 +0200
Newsgroups org.kernel.vger.linux-nilfs,dev.linux.lists.ocfs2-devel,org.kernel.vger.linux-ext4,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-kernel,org.kernel.vger.linux-nfs,org.kvack.linux-mm
Message-ID <cnxlypiisnshulqluro2maw5vjnmmkbnvbkflfld3cv6j4m2zl@z3kwuj5nxx2u>
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) <[email protected]>

Looks good. Feel free to add:

Reviewed-by: Jan Kara <[email protected]>

								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 <[email protected]>
SUSE Labs, CR