From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony Liguori Subject: [PATCH] Allow Xend to find device number for sdX or hdX with udev Date: Fri, 14 Jan 2005 15:00:58 -0600 Message-ID: <1105736457.7777.17.camel@localhost> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-WelA9cj4ctFKyXMup7dT" Return-path: Sender: xen-devel-admin@lists.sourceforge.net Errors-To: xen-devel-admin@lists.sourceforge.net List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , List-Archive: To: xen-devel@lists.sourceforge.net List-Id: xen-devel@lists.xenproject.org --=-WelA9cj4ctFKyXMup7dT Content-Type: text/plain Content-Transfer-Encoding: 7bit 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. Regards, -- Anthony Liguori Linux Technology Center (LTC) - IBM Austin E-mail: aliguori@us.ibm.com Phone: (512) 838-1208 Signed-off-by: Anthony Liguori --=-WelA9cj4ctFKyXMup7dT Content-Disposition: attachment; filename=xen_udev.diff Content-Type: text/x-patch; name=xen_udev.diff; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: 7bit Only in xen-2.0-new/tools/python/xen/lowlevel/xu: xu.c~ diff -ur xen-2.0/tools/python/xen/xend/server/blkif.py xen-2.0-new/tools/python/xen/xend/server/blkif.py --- xen-2.0/tools/python/xen/xend/server/blkif.py 2005-01-03 21:46:13.000000000 -0600 +++ xen-2.0-new/tools/python/xen/xend/server/blkif.py 2005-01-12 18:40:17.648463000 -0600 @@ -63,6 +63,12 @@ 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) --=-WelA9cj4ctFKyXMup7dT-- ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt