diff options
author | Per Øyvind Karlsen <peroyvind@mandriva.org> | 2010-03-03 20:16:39 +0000 |
---|---|---|
committer | Per Øyvind Karlsen <peroyvind@mandriva.org> | 2010-03-03 20:16:39 +0000 |
commit | a7946d0522fcfd89b58ccd2d2948729b7e4c66b1 (patch) | |
tree | b75ddda699fe1874d09007e7f174d6f5a6351165 /mdk-stage1 | |
parent | e372bf9afee9e71e3d8edc8b23a20e67a6005c3b (diff) | |
download | drakx-a7946d0522fcfd89b58ccd2d2948729b7e4c66b1.tar drakx-a7946d0522fcfd89b58ccd2d2948729b7e4c66b1.tar.gz drakx-a7946d0522fcfd89b58ccd2d2948729b7e4c66b1.tar.bz2 drakx-a7946d0522fcfd89b58ccd2d2948729b7e4c66b1.tar.xz drakx-a7946d0522fcfd89b58ccd2d2948729b7e4c66b1.zip |
actually go through all procfiles to detect Compaq Smart Array in stead of only
checking the first (yeay, 8 years and 6 months old bug fixed! \o/)
Diffstat (limited to 'mdk-stage1')
-rw-r--r-- | mdk-stage1/probing.c | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/mdk-stage1/probing.c b/mdk-stage1/probing.c index 3052b2823..55769e87f 100644 --- a/mdk-stage1/probing.c +++ b/mdk-stage1/probing.c @@ -800,23 +800,25 @@ void find_media(enum media_bus bus) static char cpq_descr[] = "Compaq RAID logical disk"; char ** procfile = procfiles; FILE * f; - while (procfile && *procfile && (f = fopen(*procfile, "rb"))) { - while (fgets(buf, sizeof(buf), f)) { - if (ptr_begins_static_str(buf, "ida/") || ptr_begins_static_str(buf, "cciss/")) { - char * end = strchr(buf, ':'); - if (!end) - log_message("Inconsistency in %s, line:\n%s", *procfile, buf); - else { - *end = '\0'; - tmp[count].name = strdup(buf); - tmp[count].type = DISK; - tmp[count].model = cpq_descr; - log_message("CPQ: found %s", tmp[count].name); - count++; + while (procfile && *procfile) { + if(f = fopen(*procfile, "rb")) { + while (fgets(buf, sizeof(buf), f)) { + if (ptr_begins_static_str(buf, "ida/") || ptr_begins_static_str(buf, "cciss/")) { + char * end = strchr(buf, ':'); + if (!end) + log_message("Inconsistency in %s, line:\n%s", *procfile, buf); + else { + *end = '\0'; + tmp[count].name = strdup(buf); + tmp[count].type = DISK; + tmp[count].model = cpq_descr; + log_message("CPQ: found %s", tmp[count].name); + count++; + } } } + fclose(f); } - fclose(f); procfile++; } } |