block: refine the disk_live check in del_gendisk
authorChristoph Hellwig <hch@lst.de>
Tue, 24 Aug 2021 14:43:10 +0000 (16:43 +0200)
committerJens Axboe <axboe@kernel.dk>
Tue, 24 Aug 2021 16:10:08 +0000 (10:10 -0600)
hidden gendisks will never be marked live.

Fixes: 40b3a52ffc5b ("block: add a sanity check for a live disk in del_gendisk")
Reported-by: Bruno Goncalves <bgoncalv@redhat.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20210824144310.1487816-1-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/genhd.c

index 6a5b65c..567549a 100644 (file)
@@ -556,7 +556,7 @@ void del_gendisk(struct gendisk *disk)
 {
        might_sleep();
 
-       if (WARN_ON_ONCE(!disk_live(disk)))
+       if (WARN_ON_ONCE(!disk_live(disk) && !(disk->flags & GENHD_FL_HIDDEN)))
                return;
 
        blk_integrity_del(disk);