From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yosuke Iwamatsu Subject: Re: [PATCH] Xend: Fix Device Duplicate Check Date: Tue, 18 Dec 2007 15:47:03 +0900 Message-ID: <47676CE7.8020402@ab.jp.nec.com> References: <47664125.8090907@ab.jp.nec.com> <8FC84114428569kanno.masaki@jp.fujitsu.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------040101000905080306030302" Return-path: In-Reply-To: <8FC84114428569kanno.masaki@jp.fujitsu.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Masaki Kanno , xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------040101000905080306030302 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hi, Masaki Kanno wrote: > Hi Iwamatsu, > > Could you improve your patch to cause an error in the following > conditions? > > - different blktap disk type: > disk = [ 'tap:aio:/xen/root.img,hda1,w', 'tap:sync:/xen/root.img,hdb1,w' ] > ^^^ ^^^^ > - different device type: > disk = [ 'file:/xen/root.img,hda1,w', 'tap:***:/xen/root.img,hdb1,w' ] > ^^^^ ^^^ Please take a look at the attach patch, which uses filename rather than uname for duplicate check of block devices. Thank you for the suggestion. Yosuke > > Best regards, > Kan > > Mon, 17 Dec 2007 18:28:05 +0900, Yosuke Iwamatsu wrote: > >> Hi, >> >> This patch fixes device duplicate check as follows. >> >> - Add duplicate check for the blktap device >> - Do case-insensitve comparison for mac addresses >> >> Regards, >> ------------------- >> Yosuke Iwamatsu >> NEC Corporation --------------040101000905080306030302 Content-Type: text/plain; name="duplicate_check_r1.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="duplicate_check_r1.patch" Xend: Fix device duplicate check. Signed-off-by: Yosuke Iwamatsu diff -r 966a6d3b7408 tools/python/xen/xend/XendConfig.py --- a/tools/python/xen/xend/XendConfig.py Fri Dec 14 11:50:24 2007 +0000 +++ b/tools/python/xen/xend/XendConfig.py Tue Dec 18 15:33:09 2007 +0900 @@ -31,7 +31,7 @@ from xen.xend.xenstore.xstransact import from xen.xend.xenstore.xstransact import xstransact from xen.xend.server.BlktapController import blktap_disk_types from xen.xend.server.netif import randomMAC -from xen.util.blkif import blkdev_name_to_number +from xen.util.blkif import blkdev_name_to_number, blkdev_uname_to_file from xen.util import xsconstants import xen.util.auxbin @@ -1023,7 +1023,7 @@ class XendConfig(dict): def device_duplicate_check(self, dev_type, dev_info, defined_config): defined_devices_sxpr = self.all_devices_sxpr(target = defined_config) - if dev_type == 'vbd': + if dev_type == 'vbd' or dev_type == 'tap': dev_uname = dev_info.get('uname') blkdev_name = dev_info.get('dev') devid = self._blkdev_name_to_number(blkdev_name) @@ -1031,10 +1031,13 @@ class XendConfig(dict): return for o_dev_type, o_dev_info in defined_devices_sxpr: - if dev_type == o_dev_type: - if dev_uname == sxp.child_value(o_dev_info, 'uname'): - raise XendConfigError('The uname "%s" is already defined' % - dev_uname) + if o_dev_type == 'vbd' or o_dev_type == 'tap': + blkdev_file = blkdev_uname_to_file(dev_uname) + o_dev_uname = sxp.child_value(o_dev_info, 'uname') + o_blkdev_file = blkdev_uname_to_file(o_dev_uname) + if blkdev_file == o_blkdev_file: + raise XendConfigError('The file "%s" is already used' % + blkdev_file) o_blkdev_name = sxp.child_value(o_dev_info, 'dev') o_devid = self._blkdev_name_to_number(o_blkdev_name) if o_devid != None and devid == o_devid: @@ -1046,7 +1049,7 @@ class XendConfig(dict): for o_dev_type, o_dev_info in defined_devices_sxpr: if dev_type == o_dev_type: - if dev_mac == sxp.child_value(o_dev_info, 'mac'): + if dev_mac.lower() == sxp.child_value(o_dev_info, 'mac').lower(): raise XendConfigError('The mac "%s" is already defined' % dev_mac) --------------040101000905080306030302 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------040101000905080306030302--