Btrfs-progs: fix segfault when using tools fs with tree log
We just free the log root after we set it up when we open a ctree in the tools. This isn't nice, it makes double free's and leaks eb's, makes segfaults with btrfs-image. So fix this to be correct, and fix the cleanup if the buffer is not uptodate. With this fix I no longer segfault trying to do btrfs-image on a file system with a log tree. Thanks, Signed-off-by: Josef Bacik <jbacik@fusionio.com>
This commit is contained in:
parent
35ba8fc39e
commit
0c7136f8e0
|
@ -660,11 +660,12 @@ static int find_and_setup_log_root(struct btrfs_root *tree_root,
|
|||
fs_info->log_root_tree = log_root;
|
||||
|
||||
if (!extent_buffer_uptodate(log_root->node)) {
|
||||
free_extent_buffer(log_root->node);
|
||||
free(log_root);
|
||||
fs_info->log_root_tree = NULL;
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
free(log_root);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue