Message ID | 20240202073104.2418230-10-dlemoal@kernel.org |
---|---|
State | New |
Headers | show |
Series | Zone write plugging | expand |
On 2/2/24 15:30, Damien Le Moal wrote: > Remove the check in blk_revalidate_disk_zones() restricting the use of > this function to mq request-based drivers to allow also BIO-based > drivers to use it. This is safe to do as long as the BIO-based block > device queue is already setup and usable, as it should, and can be > safely frozen. > > Signed-off-by: Damien Le Moal <dlemoal@kernel.org> > --- > block/blk-zoned.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/block/blk-zoned.c b/block/blk-zoned.c > index 929c28796c41..8bf6821735f3 100644 > --- a/block/blk-zoned.c > +++ b/block/blk-zoned.c > @@ -1316,8 +1316,8 @@ static int blk_revalidate_zone_cb(struct blk_zone *zone, unsigned int idx, > * be called within the disk ->revalidate method for blk-mq based drivers. > * Before calling this function, the device driver must already have set the > * device zone size (chunk_sector limit) and the max zone append limit. > - * For BIO based drivers, this function cannot be used. BIO based device drivers > - * only need to set disk->nr_zones so that the sysfs exposed value is correct. > + * BIO based drivers can also use this function as long as the device queue > + * can be safely frozen. > * If the @update_driver_data callback function is not NULL, the callback is > * executed with the device request queue frozen after all zones have been > * checked. > @@ -1334,8 +1334,6 @@ int blk_revalidate_disk_zones(struct gendisk *disk, > > if (WARN_ON_ONCE(!blk_queue_is_zoned(q))) > return -EIO; > - if (WARN_ON_ONCE(!queue_is_mq(q))) > - return -EIO; > > if (!capacity) > return -ENODEV; Reviewed-by: Hannes Reinecke <hare@suse.de Cheers, Hannes
diff --git a/block/blk-zoned.c b/block/blk-zoned.c index 929c28796c41..8bf6821735f3 100644 --- a/block/blk-zoned.c +++ b/block/blk-zoned.c @@ -1316,8 +1316,8 @@ static int blk_revalidate_zone_cb(struct blk_zone *zone, unsigned int idx, * be called within the disk ->revalidate method for blk-mq based drivers. * Before calling this function, the device driver must already have set the * device zone size (chunk_sector limit) and the max zone append limit. - * For BIO based drivers, this function cannot be used. BIO based device drivers - * only need to set disk->nr_zones so that the sysfs exposed value is correct. + * BIO based drivers can also use this function as long as the device queue + * can be safely frozen. * If the @update_driver_data callback function is not NULL, the callback is * executed with the device request queue frozen after all zones have been * checked. @@ -1334,8 +1334,6 @@ int blk_revalidate_disk_zones(struct gendisk *disk, if (WARN_ON_ONCE(!blk_queue_is_zoned(q))) return -EIO; - if (WARN_ON_ONCE(!queue_is_mq(q))) - return -EIO; if (!capacity) return -ENODEV;
Remove the check in blk_revalidate_disk_zones() restricting the use of this function to mq request-based drivers to allow also BIO-based drivers to use it. This is safe to do as long as the BIO-based block device queue is already setup and usable, as it should, and can be safely frozen. Signed-off-by: Damien Le Moal <dlemoal@kernel.org> --- block/blk-zoned.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)