Martin, Any comment on this patch ? On 2019/01/30 7:55, Damien Le Moal wrote: > Commit bf5054569653 ("block: Introduce blk_revalidate_disk_zones()") > inadvertently broke the message output of sd_zbc_print_zones() because > the zone information initialization of the scsi disk structure was > moved to the second scan run while sd_zbc_print_zones() is called on > the first scan. This leads to the following incorrect message to be > printed for any ZBC or ZAC zoned disks. > > "...[sdX] 4294967295 zones of 0 logical blocks + 1 runt zone" > > Fix this by initializing sdkp zone size and number of zones early on the > first scan. This does not impact the execution of > blk_revalidate_zones(). This functions is still called only once the > block device capacity is set on the second revalidate run on boot, or if > the disk zone configuration changed (i.e. the disk changed). > > Fixes: bf5054569653 ("block: Introduce blk_revalidate_disk_zones()") > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Damien Le Moal <damien.lemoal@xxxxxxx> > --- > drivers/scsi/sd_zbc.c | 12 ++++++++---- > 1 file changed, 8 insertions(+), 4 deletions(-) > > diff --git a/drivers/scsi/sd_zbc.c b/drivers/scsi/sd_zbc.c > index 83365b29a4d8..fff86940388b 100644 > --- a/drivers/scsi/sd_zbc.c > +++ b/drivers/scsi/sd_zbc.c > @@ -462,12 +462,16 @@ int sd_zbc_read_zones(struct scsi_disk *sdkp, unsigned char *buf) > sdkp->device->use_10_for_rw = 0; > > /* > - * If something changed, revalidate the disk zone bitmaps once we have > - * the capacity, that is on the second revalidate execution during disk > - * scan and always during normal revalidate. > + * Revalidate the disk zone bitmaps once the block device capacity is > + * set on the second revalidate execution during disk scan and if > + * something changed when executing a normal revalidate. > */ > - if (sdkp->first_scan) > + if (sdkp->first_scan) { > + sdkp->zone_blocks = zone_blocks; > + sdkp->nr_zones = nr_zones; > return 0; > + } > + > if (sdkp->zone_blocks != zone_blocks || > sdkp->nr_zones != nr_zones || > disk->queue->nr_zones != nr_zones) { > -- Damien Le Moal Western Digital Research