All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Xend: Fix Device Duplicate Check
@ 2007-12-17  9:28 Yosuke Iwamatsu
  2007-12-18  1:21 ` Masaki Kanno
  0 siblings, 1 reply; 3+ messages in thread
From: Yosuke Iwamatsu @ 2007-12-17  9:28 UTC (permalink / raw)
  To: xen-devel

[-- Attachment #1: Type: text/plain, Size: 227 bytes --]

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






[-- Attachment #2: duplicate_check.patch --]
[-- Type: text/plain, Size: 1414 bytes --]

# HG changeset patch
# User y-iwamatsu@ab.jp.nec.com
# Date 1197871440 -32400
# Node ID f9b5560cfe23eba8870bcca48fb42bf9fb4fbd65
# Parent  966a6d3b74087474df337e00b31cbecf495b442a
Xend: Fix device duplicate check.

Signed-off-by: Yosuke Iwamatsu <y-iwamatsu@ab.jp.nec.com>

diff -r 966a6d3b7408 -r f9b5560cfe23 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	Mon Dec 17 15:04:00 2007 +0900
@@ -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)
@@ -1046,7 +1046,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)
     

[-- Attachment #3: Type: text/plain, Size: 138 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] Xend: Fix Device Duplicate Check
  2007-12-17  9:28 [PATCH] Xend: Fix Device Duplicate Check Yosuke Iwamatsu
@ 2007-12-18  1:21 ` Masaki Kanno
  2007-12-18  6:47   ` Yosuke Iwamatsu
  0 siblings, 1 reply; 3+ messages in thread
From: Masaki Kanno @ 2007-12-18  1:21 UTC (permalink / raw)
  To: Yosuke Iwamatsu, xen-devel

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' ]
           ^^^^                         ^^^

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] Xend: Fix Device Duplicate Check
  2007-12-18  1:21 ` Masaki Kanno
@ 2007-12-18  6:47   ` Yosuke Iwamatsu
  0 siblings, 0 replies; 3+ messages in thread
From: Yosuke Iwamatsu @ 2007-12-18  6:47 UTC (permalink / raw)
  To: Masaki Kanno, xen-devel

[-- Attachment #1: Type: text/plain, Size: 940 bytes --]

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


[-- Attachment #2: duplicate_check_r1.patch --]
[-- Type: text/plain, Size: 2711 bytes --]

Xend: Fix device duplicate check.

Signed-off-by: Yosuke Iwamatsu <y-iwamatsu@ab.jp.nec.com>

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)
     

[-- Attachment #3: Type: text/plain, Size: 138 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2007-12-18  6:47 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-12-17  9:28 [PATCH] Xend: Fix Device Duplicate Check Yosuke Iwamatsu
2007-12-18  1:21 ` Masaki Kanno
2007-12-18  6:47   ` Yosuke Iwamatsu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.