Re: [PATCH v3 13/13] block: flag zoned disks with GENHD_FL_NO_PART
Hannes Reinecke <[email protected]>
| Newsgroups | org.kernel.vger.linux-block |
|---|---|
| Message-ID | <[email protected]> |
On 8/11/26 12:58 PM, Damien Le Moal wrote: > Zoned block devices do not support partitions. However, the partition > table is nevertheless still inspected, and any partition found ignored > with a warning in add_partition(). While this is generally not a problem, > and in fact beneficial to the user as it indicates an invalid use of a > zoned block device, scanning for a partition table on the device may > result in issuing read operations to offline zones (e.g. after a disk head > is depopulated for disks that support head management operations). > > Since partitions are ignored anyway, completely disable partition scanning > for zoned gendisks by setting the flag GENHD_FL_NO_PART in __add_disk(). > The existing check in add_partition() is left as-is to ensure that we > still get a warning if for whatever reason, despite GENHD_FL_NO_PART, we > still endup trying to add partitions. > > Flagging zoned disks with GENHD_FL_NO_PART also has the benefit to expose > through sysfs the ext_range attribute with the value of 1 instead of the > default DISK_MAX_PARTS, thus correctly advertizing the fact that zoned > disks do not support partitions. > > Signed-off-by: Damien Le Moal <[email protected]> > Reviewed-by: Bart Van Assche <[email protected]> > --- > block/genhd.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/block/genhd.c b/block/genhd.c > index e8ce0cabf392..34a64077ba02 100644 > --- a/block/genhd.c > +++ b/block/genhd.c > @@ -447,6 +447,13 @@ static int __add_disk(struct device *parent, struct gendisk *disk, > bdev_set_flag(disk->part0, BD_HAS_SUBMIT_BIO); > } > > + /* > + * We do not support partitions with zoned block devices, so do not try > + * to scan the partitions table. > + */ > + if (blk_queue_is_zoned(disk->queue)) > + disk->flags |= GENHD_FL_NO_PART; > + > /* > * If the driver provides an explicit major number it also must provide > * the number of minors numbers supported, and those will be used to Reviewed-by: Hannes Reinecke <[email protected]> Cheers, Hannes -- Dr. Hannes Reinecke Kernel Storage Architect [email protected] +49 911 74053 688 SUSE Software Solutions GmbH, Frankenstr. 146, 90461 Nürnberg HRB 36809 (AG Nürnberg), GF: I. Totev, A. McDonald, W. Knoblich