Bug 11300
| Summary: | Device major device numbers wrong on second cpqarray device during install | ||
|---|---|---|---|
| Product: | [Retired] Red Hat Linux | Reporter: | Chris Wood <chris> | 
| Component: | anaconda | Assignee: | Michael Fulbright <msf> | 
| Status: | CLOSED DUPLICATE | QA Contact: | |
| Severity: | high | Docs Contact: | |
| Priority: | high | ||
| Version: | 6.2 | CC: | msf | 
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | i386 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2000-05-10 19:33:02 UTC | Type: | --- | 
| Regression: | --- | Mount Type: | --- | 
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| 
        
          Description
        
        
          Chris Wood
        
        
        
        
        
          2000-05-08 17:44:39 UTC
        
       More info for you - The second controller is a 3200. Both controllers and the system BIOS are patched to the latest available from compaq. The problem is also reproducible with 6.1, using the Compaq supplied boot disk (from the compaq.com server support site). If you don't use this boot disk, then the second controller is not found at all. OK, I've had a dig in the anaconda source, and I've found the problem.
In the isys dir, there is a file called devnodes.c, which creates devices based
on the device list it's given.
The section in that file that deals with ida devices assumes that there will
only ever be one controller, thus assigning major 72 regardless.
I think something like this patch would fix it:
--- anaconda-6.2.2/isys/devnodes.c	Fri Jan  7 16:57:15 2000
+++ anaconda-6.2.2/isys/devnodes.c.new	Wed May 10 16:09:11 2000
@@ -103,7 +103,11 @@
     } else if (!strncmp(devName, "ida/", 4)) {
 	/* Compaq Smart Array "ida/c0d0{p1} */
 	type = S_IFBLK;
-	major = 72;                    /* controller */
+	if (devName[5] == '0' ) {
+	    major = 72;                    /* controller 0 */
+	} else {
+	    major = 73;                    /* controller 1 */
+	}
 	minor = (devName[7] - '0') * 16;  /* disk */
 	if (strlen(devName) > 8)          /* partition */
 	    minor += atoi(devName + 9);
However, I'm having trouble compiling the  source so haven't been able to verify
as yet. Would appreciate it if you could take a look, verify and get back to me.
I really need this resolving asap - I have a large number of these servers to
get built as quickly as poss.
Cheers,
C.
 |