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 <[email protected]> > Signed-off-by: Niklas Cassel <[email protected]> > --- > block/file-posix.c | 16 +--------------- > 1 file changed, 1 insertion(+), 15 deletions(-)
Reviewed-by: Stefan Hajnoczi <[email protected]>
signature.asc
Description: PGP signature
