On 8/26/26 05:57, Niklas Cassel wrote: > The check rejects a zone append whose individual iovec lengths are not > multiples of the zone write granularity. That is stricter than the > constraint it is meant to enforce, which applies to the size of the > request as a whole. A request whose total is properly aligned but which > is split across, say, a 512 byte and a 3584 byte iovec is refused here, > even though the iovec boundaries do not survive into the scatter gather > list that reaches the device. > > Nor is the driver the right place to enforce it. The kernel and the > device validate writes to a sequential zone themselves, which is why the > same function already passes the request length down without comparing it > against BlockLimits.max_append_sectors. The sector granularity that holds > for every backend is now checked once in bdrv_co_zone_append(), and a > frontend enforces the granularity it advertises to its guest. > > Drop the check. BlockLimits.write_granularity is now set in one place, by > this driver from the zone_write_granularity queue attribute, and read in > one place, by the frontend that reports it. > > Signed-off-by: Niklas Cassel <[email protected]>
Reviewed-by: Damien Le Moal <[email protected]> -- Damien Le Moal Western Digital Research
