Simply taking stat()'s st_rdev doesn't work here, as the minor is
split into two parts, the major is present, and the "extended" bit
isn't set.
Not sure whether non-Linux needs different decoding here.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
--- a/tools/python/xen/util/blkif.py
+++ b/tools/python/xen/util/blkif.py
@@ -20,7 +20,11 @@ def blkdev_name_to_number(name):
     devnum = None
 
     try:
-        return (devname, os.stat(n).st_rdev)
+        rdev = os.stat(n).st_rdev
+        if rdev > 0xffff and (rdev & 0xff00) == (202 << 8):
+            devnum = (1 << 28) + ((rdev >> 12) & ~0xff) + (rdev & 0xff)
+            return (devname, devnum)
+        return (devname, rdev)
     except Exception, ex:
         pass
 
 
blkif-dev-to-num.patch 
Description: Text document 
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 
 |