summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbencollins <tailor@grayson>2006-06-01 13:18:51 -0400
committerBen Collins <bcollins@ubuntu.com>2006-06-01 13:18:51 -0400
commit1d21503756ba92f52c81adb776fe74855f47f370 (patch)
tree37df395d171da1d76908935b50df9817f96b6e52
parent0ead116aaa76461208933dfd7df0f9c133b46445 (diff)
downloadsilo-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.c22
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");