Hi Dmitry, Klaus. On 2/8/21 1:32 AM, Dmitry Fomichev wrote: > Implicitly and Explicitly Open zones can be closed by Close Zone > management function. This got broken by a recent commit and now such > commands fail with Invalid Zone State Transition status. > > Modify nvm_zrm_close() function to make Close Zone work correctly. > > Signed-off-by: Dmitry Fomichev <dmitry.fomic...@wdc.com> > Fixes: 053b5a302c3("hw/block/nvme: refactor zone resource management")
'053b5a302c3': unknown revision or path not in the working tree. If you point at an unmerged commit, why not fix it directly before merging? > --- > hw/block/nvme.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/hw/block/nvme.c b/hw/block/nvme.c > index 6b84e34843..c2f0c88fbf 100644 > --- a/hw/block/nvme.c > +++ b/hw/block/nvme.c > @@ -1308,14 +1308,13 @@ static uint16_t nvme_zrm_finish(NvmeNamespace *ns, > NvmeZone *zone) > static uint16_t nvme_zrm_close(NvmeNamespace *ns, NvmeZone *zone) > { > switch (nvme_get_zone_state(zone)) { > - case NVME_ZONE_STATE_CLOSED: > - return NVME_SUCCESS; > - > case NVME_ZONE_STATE_EXPLICITLY_OPEN: > case NVME_ZONE_STATE_IMPLICITLY_OPEN: > nvme_aor_dec_open(ns); > nvme_assign_zone_state(ns, zone, NVME_ZONE_STATE_CLOSED); > /* fall through */ > + case NVME_ZONE_STATE_CLOSED: > + return NVME_SUCCESS; > > default: > return NVME_ZONE_INVAL_TRANSITION; >