On Jan 12 10:42, Klaus Jensen wrote: > From: Klaus Jensen > > The zone write pointer is unconditionally advanced, even for write > faults. Make sure that the zone is always transitioned to Full if the > write pointer reaches zone capacity. > > Signed-off-by: Klaus Jensen > Cc: Dmitry Fomichev > --- > hw/block/nvme.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/hw/block/nvme.c b/hw/block/nvme.c > index 0854ee307227..280b31b4459d 100644 > --- a/hw/block/nvme.c > +++ b/hw/block/nvme.c > @@ -1268,10 +1268,13 @@ static void nvme_finalize_zoned_write(NvmeNamespace *ns, NvmeRequest *req, > nlb = le16_to_cpu(rw->nlb) + 1; > zone = nvme_get_zone_by_slba(ns, slba); > > + zone->d.wp += nlb; > + > if (failed) { > res->slba = 0; > - zone->d.wp += nlb; > - } else if (zone->w_ptr == nvme_zone_wr_boundary(zone)) { > + } > + > + if (zone->d.wp == nvme_zone_wr_boundary(zone)) { > switch (nvme_get_zone_state(zone)) { > case NVME_ZONE_STATE_IMPLICITLY_OPEN: > case NVME_ZONE_STATE_EXPLICITLY_OPEN: > @@ -1288,9 +1291,6 @@ static void nvme_finalize_zoned_write(NvmeNamespace *ns, NvmeRequest *req, > default: > assert(false); > } > - zone->d.wp = zone->w_ptr; > - } else { > - zone->d.wp += nlb; > } > } > Applied to nvme-next.