]> git.ipfire.org Git - thirdparty/linux.git/commit - include/linux/blkdev.h
block, loop: support partitions without scanning
authorChristoph Hellwig <hch@lst.de>
Fri, 27 May 2022 05:58:06 +0000 (07:58 +0200)
committerJens Axboe <axboe@kernel.dk>
Fri, 27 May 2022 12:39:00 +0000 (06:39 -0600)
commitb9684a71fca793213378dd410cd11675d973eaa1
tree7238edcd322c551951333c7be21921b543ffd9aa
parent32feee36c30ea06e38ccb8ae6e5c44c6eec790a6
block, loop: support partitions without scanning

Historically we did distinguish between a flag that surpressed partition
scanning, and a combinations of the minors variable and another flag if
any partitions were supported.  This was generally confusing and doesn't
make much sense, but some corner case uses of the loop driver actually
do want to support manually added partitions on a device that does not
actively scan for partitions.  To make things worsee the loop driver
also wants to dynamically toggle the scanning for partitions on a live
gendisk, which makes the disk->flags updates non-atomic.

Introduce a new GD_SUPPRESS_PART_SCAN bit in disk->state that disables
just scanning for partitions, and toggle that instead of GENHD_FL_NO_PART
in the loop driver.

Fixes: 1ebe2e5f9d68 ("block: remove GENHD_FL_EXT_DEVT")
Reported-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Link: https://lore.kernel.org/r/20220527055806.1972352-1-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/genhd.c
drivers/block/loop.c
include/linux/blkdev.h