imsm: fix thunderdome segfault

disk_list_get() can return NULL if:
1/ A formerly missing disk is re-added
2/ The original array has not been rebuilt, so the family number of the
   missing disk still matches
3/ The metadata record of the in-sync disks are read before the missing
   disk

This will result in the missing disk not adding its own serial number to
the disk_list, only its truncated value will be present.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:
Dan Williams 2009-12-12 13:57:25 -07:00
parent ac6449bee9
commit ecf408e914
1 changed files with 1 additions and 1 deletions

View File

@ -2429,7 +2429,7 @@ imsm_thunderdome(struct intel_super **super_list, int len)
struct intel_disk *idisk;
idisk = disk_list_get(dl->serial, disk_list);
if (is_spare(&idisk->disk) &&
if (idisk && is_spare(&idisk->disk) &&
!is_failed(&idisk->disk) && !is_configured(&idisk->disk))
dl->index = -1;
else {