diff options
author | bencollins <tailor@grayson> | 2006-06-01 13:18:51 -0400 |
---|---|---|
committer | Ben Collins <bcollins@ubuntu.com> | 2006-06-01 13:18:51 -0400 |
commit | 1d21503756ba92f52c81adb776fe74855f47f370 (patch) | |
tree | 37df395d171da1d76908935b50df9817f96b6e52 | |
parent | 0ead116aaa76461208933dfd7df0f9c133b46445 (diff) | |
download | silo-1d21503756ba92f52c81adb776fe74855f47f370.tar.gz |
[silo @ 89]
Fixes md-raid support in some odd cases. Can't recall who sent me this
patch, but remind me and I'll give credit.#
-rw-r--r-- | silo/silo.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/silo/silo.c b/silo/silo.c index fe6f408..8e395c4 100644 --- a/silo/silo.c +++ b/silo/silo.c @@ -1002,17 +1002,19 @@ struct hwdevice *get_device(int majno, int minno) md_disk_info.number = i; if (ioctl (md_fd, GET_DISK_INFO, &md_disk_info) < 0) fatal ("Could not get RAID disk info for disk %d\n", i); - d = get_device (md_disk_info.majorno, md_disk_info.minorno); - if (md_disk_info.state == MD_DISK_FAULTY) { - printf ("disk %s marked as faulty, skipping\n", d->dev); - continue; + if(md_disk_info.majorno != 0 && md_disk_info.minorno != 0) { + d = get_device (md_disk_info.majorno, md_disk_info.minorno); + if (md_disk_info.state == MD_DISK_FAULTY) { + printf ("disk %s marked as faulty, skipping\n", d->dev); + continue; + } + if (hwdev) + last->next = d; + else + hwdev = d; + while (d->next != NULL) d = d->next; + last = d; } - if (hwdev) - last->next = d; - else - hwdev = d; - while (d->next != NULL) d = d->next; - last = d; } if (!hwdev) fatal ("No non-faulty disks found in RAID1"); |