mirror of https://gitee.com/openkylin/linux.git
btrfs: use free_root_extent_buffer to free root
In btrfs_put_root() we're freeing a btrfs_root's 'node' and 'commit_root' extent buffers manually via kfree(), while we're using free_root_extent_buffers() in the free_root_pointers() function above. free_root_extent_buffers() also NULLs the pointers after freeing, which mitigates potential double frees. Reviewed-by: Anand Jain <anand.jain@oracle.com> Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
4e9d0d0109
commit
923eb52365
|
@ -2001,8 +2001,7 @@ void btrfs_put_root(struct btrfs_root *root)
|
|||
if (root->anon_dev)
|
||||
free_anon_bdev(root->anon_dev);
|
||||
btrfs_drew_lock_destroy(&root->snapshot_lock);
|
||||
free_extent_buffer(root->node);
|
||||
free_extent_buffer(root->commit_root);
|
||||
free_root_extent_buffers(root);
|
||||
kfree(root->free_ino_ctl);
|
||||
kfree(root->free_ino_pinned);
|
||||
#ifdef CONFIG_BTRFS_DEBUG
|
||||
|
|
Loading…
Reference in New Issue