md: compare bd_disk instead of bd_contains
authorChristoph Hellwig <hch@lst.de>
Thu, 3 Sep 2020 05:40:58 +0000 (07:40 +0200)
committerJens Axboe <axboe@kernel.dk>
Fri, 25 Sep 2020 14:18:57 +0000 (08:18 -0600)
To check for partitions of the same disk bd_contains works as well, but
bd_disk is way more obvious.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Song Liu <song@kernel.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/md/md.c

index 64bc22d..09ed6d0 100644 (file)
@@ -2322,8 +2322,7 @@ static int match_mddev_units(struct mddev *mddev1, struct mddev *mddev2)
                            test_bit(Journal, &rdev2->flags) ||
                            rdev2->raid_disk == -1)
                                continue;
-                       if (rdev->bdev->bd_contains ==
-                           rdev2->bdev->bd_contains) {
+                       if (rdev->bdev->bd_disk == rdev2->bdev->bd_disk) {
                                rcu_read_unlock();
                                return 1;
                        }
@@ -5944,8 +5943,8 @@ int md_run(struct mddev *mddev)
                rdev_for_each(rdev, mddev)
                        rdev_for_each(rdev2, mddev) {
                                if (rdev < rdev2 &&
-                                   rdev->bdev->bd_contains ==
-                                   rdev2->bdev->bd_contains) {
+                                   rdev->bdev->bd_disk ==
+                                   rdev2->bdev->bd_disk) {
                                        pr_warn("%s: WARNING: %s appears to be on the same physical disk as %s.\n",
                                                mdname(mddev),
                                                bdevname(rdev->bdev,b),