summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/cmd/diskinfo/diskinfo.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/usr/src/cmd/diskinfo/diskinfo.c b/usr/src/cmd/diskinfo/diskinfo.c
index ca09fe027e..f7b352c0e6 100644
--- a/usr/src/cmd/diskinfo/diskinfo.c
+++ b/usr/src/cmd/diskinfo/diskinfo.c
@@ -11,6 +11,7 @@
/*
* Copyright (c) 2018 Joyent Inc., All rights reserved.
+ * Copyright 2021 RackTop Systems, Inc.
*/
#include <sys/types.h>
@@ -270,7 +271,15 @@ enumerate_disks(di_opts_t *opts)
continue;
}
- mattrs = dm_get_attributes(media[i], &err);
+ /*
+ * The attributes depend on us being able to get the media
+ * info with DKIOCGMEDIAINFO which may not be the case for
+ * disks which are failing.
+ */
+ if ((mattrs = dm_get_attributes(media[i], &err)) == NULL) {
+ continue;
+ }
+
err = nvlist_lookup_uint64(mattrs, DM_SIZE, &size);
assert(err == 0);
err = nvlist_lookup_uint32(mattrs, DM_BLOCKSIZE, &blocksize);