btrfs: allocate file_ra_state on stack in readahead_cache
authorGoldwyn Rodrigues <rgoldwyn@suse.com>
Tue, 27 Jul 2021 21:17:26 +0000 (16:17 -0500)
committerDavid Sterba <dsterba@suse.com>
Mon, 23 Aug 2021 11:19:10 +0000 (13:19 +0200)
Instead of allocating file_ra_state using kmalloc, allocate on stack.
sizeof(struct readahead) = 32 bytes.

Reviewed-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/free-space-cache.c

index 2131ae5..8eeb652 100644 (file)
@@ -344,19 +344,13 @@ fail:
 
 static void readahead_cache(struct inode *inode)
 {
-       struct file_ra_state *ra;
+       struct file_ra_state ra;
        unsigned long last_index;
 
-       ra = kzalloc(sizeof(*ra), GFP_NOFS);
-       if (!ra)
-               return;
-
-       file_ra_state_init(ra, inode->i_mapping);
+       file_ra_state_init(&ra, inode->i_mapping);
        last_index = (i_size_read(inode) - 1) >> PAGE_SHIFT;
 
-       page_cache_sync_readahead(inode->i_mapping, ra, NULL, 0, last_index);
-
-       kfree(ra);
+       page_cache_sync_readahead(inode->i_mapping, &ra, NULL, 0, last_index);
 }
 
 static int io_ctl_init(struct btrfs_io_ctl *io_ctl, struct inode *inode,