Ryan O''Connor
2009-Jul-03 06:20 UTC
[Xen-devel] [PATCH] blktap2: seperate blktap1/blktap2 disk types
# HG changeset patch # User Ryan O''Connor <rjo@cs.ubc.ca> # Date 1246601791 25200 # Node ID e003f10a67e4cd7ab6d22304638b924ebf8e8e3f # Parent d461c4d8af17c86dc7e4a1ff730f85634e73eb26 blktap2: seperate blktap1/blktap2 disk types * seperate blktap1/blktap2 disk types * use blktap1 when driver is not in explicit list of blktap2 drivers, rather than current check against list of blktap1 only drivers * remove ''tapdisk'' disk type (it is not a tapdisk disk type) and fix tapdisk disk type check in XenConfig Signed-off-by: Ryan O''Connor <rjo@cs.ubc.ca> diff -r d461c4d8af17 -r e003f10a67e4 tools/python/xen/xend/XendConfig.py --- a/tools/python/xen/xend/XendConfig.py Thu Jul 02 21:45:30 2009 +0100 +++ b/tools/python/xen/xend/XendConfig.py Thu Jul 02 23:16:31 2009 -0700 @@ -1379,9 +1379,13 @@ class XendConfig(dict): else: # Save uname for next domain start. dev_info[''required_uname''] = dev_info[''uname''] - if dev_info[''uname''].split('':'')[1] not in blktap_disk_types: + tap_disk_type = dev_info[''uname''].split('':'')[1] + # tapdisk uname may be ''tap:<driver>'' or ''tap:tapdisk:<driver>'' + if tap_disk_type == ''tapdisk'': + tap_disk_type = dev_info[''uname''].split('':'')[2] + if tap_disk_type not in blktap_disk_types: raise XendConfigError("tap:%s not a valid disk type" % - dev_info[''uname''].split('':'')[1]) + tap_disk_type) if dev_type == ''vif'': if not dev_info.get(''mac''): diff -r d461c4d8af17 -r e003f10a67e4 tools/python/xen/xend/server/BlktapController.py --- a/tools/python/xen/xend/server/BlktapController.py Thu Jul 02 21:45:30 2009 +0100 +++ b/tools/python/xen/xend/server/BlktapController.py Thu Jul 02 23:16:31 2009 -0700 @@ -13,17 +13,24 @@ TAPDISK_DEVICE = ''/dev/xen/blktap-2/tap TAPDISK_DEVICE = ''/dev/xen/blktap-2/tapdev'' TAPDISK_CONTROL = TAPDISK_SYSFS + ''/blktap'' -blktap_disk_types = [ +blktap1_disk_types = set([ ''aio'', ''sync'', ''vmdk'', ''ram'', ''qcow'', ''qcow2'', + ''ioemu'', + ]) + +blktap2_disk_types = set([ + ''aio'', + ''ram'', + ''qcow'', ''vhd'', - ''ioemu'', - ''tapdisk'', - ] + ]) + +blktap_disk_types = blktap1_disk_types | blktap2_disk_types def doexec(args, inputtext=None): """Execute a subprocess, then return its return code, stdout and stderr""" @@ -151,7 +158,7 @@ class Blktap2Controller(BlktapController if typ in (''tap''): if subtyp in (''tapdisk''): - if params in (''ioemu'', ''qcow2'', ''vmdk'', ''sync'') or not blktap2_installed: + if params not in blktap2_disk_types or not blktap2_installed: # pass this device off to BlktapController log.warn(''WARNING: using deprecated blktap module'') self.deviceClass = ''tap'' _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel