On 11.02.20 г. 23:40 ч., Josef Bacik wrote: > While running my error injection script I hit a panic when we tried to > clean up the fs_root when free'ing the fs_root. This is because > fs_info->fs_root == PTR_ERR(-EIO), which isn't great. Fix this by > setting fs_info->fs_root = NULL; if we fail to read the root. > > Signed-off-by: Josef Bacik <josef@xxxxxxxxxxxxxx> While looking to see how ->fs_root (git grep "\->fs_root\W" fs/btrfs) is used I realized we almost never query it through that member. It's cleaned up via the btrfs_free_fs_roots which queries the root radix. Given this I fail to see how the presence of a bogus value in fs_info->fs_root would cause a crash (it's certainly wrong so your patch per-se is fine). Can you provide an example call trace? In any case : Reviewed-by: Nikolay Borisov <nborisov@xxxxxxxx>
