summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/cmd/nvmeadm/nvmeadm.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/usr/src/cmd/nvmeadm/nvmeadm.c b/usr/src/cmd/nvmeadm/nvmeadm.c
index d7dffc1d47..de1d3e0171 100644
--- a/usr/src/cmd/nvmeadm/nvmeadm.c
+++ b/usr/src/cmd/nvmeadm/nvmeadm.c
@@ -528,6 +528,15 @@ static int
do_list_nsid(int fd, const nvme_process_arg_t *npa)
{
_NOTE(ARGUNUSED(fd));
+ const uint_t format = npa->npa_idns->id_flbas.lba_format;
+ const uint_t bshift = npa->npa_idns->id_lbaf[format].lbaf_lbads;
+
+ /*
+ * Some devices have extra namespaces with illegal block sizes and
+ * zero blocks. Don't list them when verbose operation isn't requested.
+ */
+ if ((bshift < 9 || npa->npa_idns->id_nsize == 0) && verbose == 0)
+ return (0);
(void) printf(" %s/%s (%s): ", npa->npa_name,
di_minor_name(npa->npa_minor),