diff options
author | Qu Wenruo <wqu@suse.com> | 2018-06-20 09:38:58 +0200 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2018-08-06 13:12:38 +0200 |
commit | 9912bbf6440ba0555e91d3306520da01872c7c1d (patch) | |
tree | 861abacfd17adf6fba9e9483bcdee438e45da725 /fs/btrfs/ioctl.c | |
parent | btrfs: Remove fs_info from btrfs_force_chunk_alloc (diff) | |
download | linux-9912bbf6440ba0555e91d3306520da01872c7c1d.tar.xz linux-9912bbf6440ba0555e91d3306520da01872c7c1d.zip |
btrfs: check-integrity: Fix NULL pointer dereference for degraded mount
Commit f8f84b2dfda5 ("btrfs: index check-integrity state hash by a dev_t")
changed how btrfsic indexes device state.
Now we need to access device->bdev->bd_dev, while for degraded mount
it's completely possible to have device->bdev as NULL, thus it will
trigger a NULL pointer dereference at mount time.
Fix it by checking if the device is degraded before accessing
device->bdev->bd_dev.
There are a lot of other places accessing device->bdev->bd_dev, however
the other call sites have either checked device->bdev, or the
device->bdev is passed from btrfsic_map_block(), so it won't cause harm.
Fixes: f8f84b2dfda5 ("btrfs: index check-integrity state hash by a dev_t")
Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/ioctl.c')
0 files changed, 0 insertions, 0 deletions