]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
configfs: replace __get_free_pages() with kzalloc()
authorMike Rapoport (Microsoft) <rppt@kernel.org>
Sat, 23 May 2026 17:54:27 +0000 (20:54 +0300)
committerChristian Brauner <brauner@kernel.org>
Thu, 28 May 2026 11:58:14 +0000 (13:58 +0200)
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@kernel.org>
Link: https://patch.msgid.link/20260523-b4-fs-v1-15-275e36a83f0e@kernel.org
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
fs/configfs/file.c

index ef8c3cd10cc656d3ac729eaf952fbd7b5315c080..a48cece775a39fdbb8ebf1f186d335203b5429e4 100644 (file)
@@ -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;