]> xenbits.xensource.com Git - xen.git/commitdiff
bitkeeper revision 1.1159.170.96 (41e8fbeayXDKhR25_xBQP3hTDrVJbQ)
authoriap10@labyrinth.cl.cam.ac.uk <iap10@labyrinth.cl.cam.ac.uk>
Sat, 15 Jan 2005 11:18:02 +0000 (11:18 +0000)
committeriap10@labyrinth.cl.cam.ac.uk <iap10@labyrinth.cl.cam.ac.uk>
Sat, 15 Jan 2005 11:18:02 +0000 (11:18 +0000)
Symptom:
When using a udev-based dom0, if you try to create a domU with a virtual
sda device and you do not have a local scsi device xm create fails.

Fix:
When using udev, only the device nodes needed are made.  The follow
patch changes Xend to return a device number based on:

http://www.lanana.org/docs/device-list/devices.txt

For sd and hd devices if stat() fails.  It was tested against both 2.0.2
and 2.0.3.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
tools/python/xen/xend/server/blkif.py

index c17c0c568e10ac551e454bc0995f10944285bee1..b980ebcb721bb550cd62ddea96e25a7b968a8ced 100755 (executable)
@@ -63,6 +63,12 @@ def blkdev_name_to_number(name):
         log.debug("exception looking up device number for %s: %s", name, ex)
        pass
 
+    if re.match( '/dev/sd[a-p]([0-9]|1[0-5])', n):
+        return 8 * 256 + 16 * (ord(n[7:8]) - ord('a')) + int(n[8:])
+
+    if re.match( '/dev/hd[a-p]([0-9]|[1-5][0-9]|6[0-3])', n):
+        return 3 * 256 + 16 * (ord(n[7:8]) - ord('a')) + int(n[8:])        
+
     # see if this is a hex device number
     if re.match( '^(0x)?[0-9a-fA-F]+$', name ):
        return string.atoi(name,16)