On Mon, Sep 07, 2026 at 01:07:43PM +0200, 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. > > Reviewed-by: Damien Le Moal > Signed-off-by: Niklas Cassel > --- > block/file-posix.c | 16 +--------------- > 1 file changed, 1 insertion(+), 15 deletions(-) Reviewed-by: Stefan Hajnoczi