diff options
author | Anand Jain <anand.jain@oracle.com> | 2022-01-12 08:05:59 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2022-04-08 15:23:58 +0300 |
commit | 40d006dfedd60ed8415bf8edec539be2d6c61662 (patch) | |
tree | a810a1dfab97056a3febbb97b81a84b0bf1701a3 /kernel/profile.c | |
parent | 58d3aa672d1386d4ccd2c11d6f1a09675c30f57a (diff) | |
download | linux-40d006dfedd60ed8415bf8edec539be2d6c61662.tar.xz |
btrfs: harden identification of a stale device
[ Upstream commit 770c79fb65506fc7c16459855c3839429f46cb32 ]
Identifying and removing the stale device from the fs_uuids list is done
by btrfs_free_stale_devices(). btrfs_free_stale_devices() in turn
depends on device_path_matched() to check if the device appears in more
than one btrfs_device structure.
The matching of the device happens by its path, the device path. However,
when device mapper is in use, the dm device paths are nothing but a link
to the actual block device, which leads to the device_path_matched()
failing to match.
Fix this by matching the dev_t as provided by lookup_bdev() instead of
plain string compare of the device paths.
Reported-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'kernel/profile.c')
0 files changed, 0 insertions, 0 deletions