]> www.infradead.org Git - users/hch/nvme-cli.git/commitdiff
Add warning if not all zone changed list entries are retrieved.
authorHans Holmberg <hans.holmberg@wdc.com>
Fri, 19 Jun 2020 13:52:32 +0000 (13:52 +0000)
committerKeith Busch <kbusch@kernel.org>
Fri, 19 Jun 2020 15:03:44 +0000 (09:03 -0600)
The Changed Zone List only support reporting of a maximum of 511 entries.

Signed-off-by: Hans Holmberg <hans.holmberg@wdc.com>
Signed-off-by: Matias Bjørling <matias.bjorling@wdc.com>
nvme-print.c

index 6227c349c6636faccc6edc8f81d8cc4d61c66269..f58e4c3f9f66d0f546f89d236406a5ea47ba6e8d 100644 (file)
@@ -2959,7 +2959,7 @@ void nvme_show_zns_id_ns(struct nvme_zns_id_ns *ns,
                        ns->lbafe[i].zdes, i == lbaf ? " (in use)" : "");
 }
 
-void nvme_show_zns_changed( struct nvme_zns_changed_zone_log *log,
+void nvme_show_zns_changed(struct nvme_zns_changed_zone_log *log,
        unsigned long flags)
 {
        uint16_t nrzid;
@@ -2970,9 +2970,14 @@ void nvme_show_zns_changed( struct nvme_zns_changed_zone_log *log,
 
        nrzid = le16_to_cpu(log->nrzid);
        printf("NVMe Changed Zone List:\n");
-       printf("nrzid:  %u\n", nrzid);
 
-       for (i = 0; i < min(nrzid, (uint16_t)NVME_ZNS_CHANGED_ZONES_MAX); i++)
+       if (nrzid == 0xFFFF) {
+               printf("Too many zones have changed to fit into the log. Use report zones for changes.\n");
+               return;
+       }
+
+       printf("nrzid:  %u\n", nrzid);
+       for (i = 0; i < nrzid; i++)
                printf("zid %03d: %"PRIu64"\n", i, (uint64_t)le64_to_cpu(log->zid[i]));
 }