Btrfs: fix NULL pointer crash of deleting a seed device

Same as normal devices, seed devices should be initialized with
fs_info->dev_root as well, otherwise we'll get a NULL pointer crash.

Cc: Chris Murphy <lists@colorremedies.com>
Reported-by: Chris Murphy <lists@colorremedies.com>
Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
Signed-off-by: Chris Mason <clm@fb.com>
This commit is contained in:
Liu Bo 2014-05-11 23:14:59 +08:00 committed by Chris Mason
parent f017f15f7c
commit 29cc83f69c

View File

@ -6146,10 +6146,14 @@ void btrfs_init_devices_late(struct btrfs_fs_info *fs_info)
struct btrfs_fs_devices *fs_devices = fs_info->fs_devices; struct btrfs_fs_devices *fs_devices = fs_info->fs_devices;
struct btrfs_device *device; struct btrfs_device *device;
mutex_lock(&fs_devices->device_list_mutex); while (fs_devices) {
list_for_each_entry(device, &fs_devices->devices, dev_list) mutex_lock(&fs_devices->device_list_mutex);
device->dev_root = fs_info->dev_root; list_for_each_entry(device, &fs_devices->devices, dev_list)
mutex_unlock(&fs_devices->device_list_mutex); device->dev_root = fs_info->dev_root;
mutex_unlock(&fs_devices->device_list_mutex);
fs_devices = fs_devices->seed;
}
} }
static void __btrfs_reset_dev_stats(struct btrfs_device *dev) static void __btrfs_reset_dev_stats(struct btrfs_device *dev)