This commit enables the rescap function in the namespace by detecting the supported reservation function in the backend driver.
Signed-off-by: Changqi Lu <luchangqi....@bytedance.com> Signed-off-by: zhenwei pi <pizhen...@bytedance.com> --- hw/nvme/ns.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hw/nvme/ns.c b/hw/nvme/ns.c index ea8db175db..bb09117f4b 100644 --- a/hw/nvme/ns.c +++ b/hw/nvme/ns.c @@ -20,6 +20,7 @@ #include "qemu/bitops.h" #include "sysemu/sysemu.h" #include "sysemu/block-backend.h" +#include "block/block_int.h" #include "nvme.h" #include "trace.h" @@ -55,6 +56,13 @@ void nvme_ns_init_format(NvmeNamespace *ns) } id_ns->npda = id_ns->npdg = npdg - 1; + + /* + * The persistent reservation capacities of block + * and nvme are currently defined the same. + * If there are subsequent changes, this part needs to be changed. + */ + id_ns->rescap = blk_bs(ns->blkconf.blk)->file->bs->bl.pr_cap; } static int nvme_ns_init(NvmeNamespace *ns, Error **errp) -- 2.20.1