| From c3f4a1685bb87e59c886ee68f7967eae07d4dffa Mon Sep 17 00:00:00 2001 |
| From: Filipe Manana <fdmanana@suse.com> |
| Date: Sat, 13 Jun 2015 06:52:56 +0100 |
| Subject: Btrfs: use kmem_cache_free when freeing entry in inode cache |
| |
| From: Filipe Manana <fdmanana@suse.com> |
| |
| commit c3f4a1685bb87e59c886ee68f7967eae07d4dffa upstream. |
| |
| The free space entries are allocated using kmem_cache_zalloc(), |
| through __btrfs_add_free_space(), therefore we should use |
| kmem_cache_free() and not kfree() to avoid any confusion and |
| any potential problem. Looking at the kfree() definition at |
| mm/slab.c it has the following comment: |
| |
| /* |
| * (...) |
| * |
| * Don't free memory not originally allocated by kmalloc() |
| * or you will run into trouble. |
| */ |
| |
| So better be safe and use kmem_cache_free(). |
| |
| Signed-off-by: Filipe Manana <fdmanana@suse.com> |
| Reviewed-by: David Sterba <dsterba@suse.cz> |
| Signed-off-by: Chris Mason <clm@fb.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| fs/btrfs/inode-map.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/fs/btrfs/inode-map.c |
| +++ b/fs/btrfs/inode-map.c |
| @@ -283,7 +283,7 @@ void btrfs_unpin_free_ino(struct btrfs_r |
| __btrfs_add_free_space(ctl, info->offset, count); |
| free: |
| rb_erase(&info->offset_index, rbroot); |
| - kfree(info); |
| + kmem_cache_free(btrfs_free_space_cachep, info); |
| } |
| } |
| |