On 5/30/24 16:37, Niklas Cassel wrote: [...] >> +static bool disk_zone_is_full(struct gendisk *disk, >> + unsigned int zno, unsigned int offset_in_zone) > > Why not just call the third parameter wp? Because it does not have to be a plug write pointer. And even then, zone write plugging uses offset in a zone as write pointer values :) [...] >> static void disk_remove_zone_wplug(struct gendisk *disk, >> @@ -669,13 +683,12 @@ static void disk_zone_wplug_abort(struct blk_zone_wplug *zwplug) >> static void disk_zone_wplug_abort_unaligned(struct gendisk *disk, >> struct blk_zone_wplug *zwplug) >> { >> - unsigned int zone_capacity = disk->zone_capacity; >> unsigned int wp_offset = zwplug->wp_offset; >> struct bio_list bl = BIO_EMPTY_LIST; >> struct bio *bio; >> >> while ((bio = bio_list_pop(&zwplug->bio_list))) { >> - if (wp_offset >= zone_capacity || >> + if (disk_zone_is_full(disk, zwplug->zone_no, wp_offset) || > > Why don't you use disk_zone_wplug_is_full() here? Because this function does not modify the zone write plug write offset. So we cannot use it. -- Damien Le Moal Western Digital Research