diff options
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/cmd/diskinfo/diskinfo.c | 11 |
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); |