The zone size of Zoned UFS may be not power of 2. It should be better to get wp_offset by bdev_offset_from_zone_start instead of open-coding it. Fixes: dd291d77cc90 ("block: Introduce zone write plugging") Signed-off-by: LongPing Wei <weilongping@xxxxxxxx> --- v2: Fix compile error. v1: https://lore.kernel.org/linux-block/20220923173618.6899-2-p.raghav@xxxxxxxxxxx/ bdev_nr_zones/disk_zone_no could support npo2 zone size by this commit. --- block/blk-zoned.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/block/blk-zoned.c b/block/blk-zoned.c index af19296fa50d..77a448952bbd 100644 --- a/block/blk-zoned.c +++ b/block/blk-zoned.c @@ -537,7 +537,7 @@ static struct blk_zone_wplug *disk_get_and_lock_zone_wplug(struct gendisk *disk, spin_lock_init(&zwplug->lock); zwplug->flags = 0; zwplug->zone_no = zno; - zwplug->wp_offset = sector & (disk->queue->limits.chunk_sectors - 1); + zwplug->wp_offset = bdev_offset_from_zone_start(disk->part0, sector); bio_list_init(&zwplug->bio_list); INIT_WORK(&zwplug->bio_work, blk_zone_wplug_bio_work); zwplug->disk = disk; base-commit: c2ee9f594da826bea183ed14f2cc029c719bf4da -- 2.34.1