btrfs: sanitizing ->fs_info, part 4
A new helper: btrfs_alloc_root(fs_info); allocates btrfs_root and sets ->fs_info. All places allocating the suckers converted to it. At that point we *never* reassign ->fs_info of btrfs_root; it's set before anyone sees the address of newly allocated struct btrfs_root and never assigned anywhere else. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
@@ -901,12 +901,11 @@ static struct dentry *btrfs_mount(struct file_system_type *fs_type, int flags,
|
||||
if (!fs_info)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
fs_info->tree_root = kzalloc(sizeof(struct btrfs_root), GFP_NOFS);
|
||||
fs_info->tree_root = btrfs_alloc_root(fs_info);
|
||||
if (!fs_info->tree_root) {
|
||||
error = -ENOMEM;
|
||||
goto error_fs_info;
|
||||
}
|
||||
fs_info->tree_root->fs_info = fs_info;
|
||||
fs_info->fs_devices = fs_devices;
|
||||
|
||||
fs_info->super_copy = kzalloc(BTRFS_SUPER_INFO_SIZE, GFP_NOFS);
|
||||
|
Reference in New Issue
Block a user