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
|