# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1246877222 -3600
# Node ID 07dd575147b0535a95efbb4950b6d36407c3b53c
# Parent 7605b318619f71d4786ecca8d3fbc17a7b237e3d
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@xxxxxxxxx>
---
tools/python/xen/xend/XendConfig.py | 8 ++++++--
tools/python/xen/xend/server/BlktapController.py | 17 ++++++++++++-----
2 files changed, 18 insertions(+), 7 deletions(-)
diff -r 7605b318619f -r 07dd575147b0 tools/python/xen/xend/XendConfig.py
--- a/tools/python/xen/xend/XendConfig.py Mon Jul 06 11:46:22 2009 +0100
+++ b/tools/python/xen/xend/XendConfig.py Mon Jul 06 11:47:02 2009 +0100
@@ -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 7605b318619f -r 07dd575147b0
tools/python/xen/xend/server/BlktapController.py
--- a/tools/python/xen/xend/server/BlktapController.py Mon Jul 06 11:46:22
2009 +0100
+++ b/tools/python/xen/xend/server/BlktapController.py Mon Jul 06 11:47:02
2009 +0100
@@ -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-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|