this patch remove problems with blktap2 devices:
1. If we use blktap2 disk device then DomU does not boot. Returned error: File 'vhd:/path/.../disk.img' doesn't exist.
2. Created blktap2 disk device does not accessible immediately after connecting: If we use pygrub then DomU does not boot. Returned error: Disk is not accessible.

Signed-off-by: eXeC001er <execooler@gmail.com>
---


2010/5/30 Keir Fraser <keir.fraser@eu.citrix.com>
Needs a patch description and a signed-off-by line.

 -- Keir

On 30/05/2010 13:21, "eXeC001er" <execooler@gmail.com> wrote:

> My python-experience is small, but i tied to rewrite.
> New in attach.
>
> 2010/5/30 Keir Fraser <keir.fraser@eu.citrix.com>
>> On 30/05/2010 11:37, "Pasi Kärkkäinen" <pasik@iki.fi> wrote:
>>
>>> On Sun, May 30, 2010 at 02:02:06PM +0400, eXeC001er wrote:
>>>>    I have already sent a patch 1 weak ago. (blktap2_control_func.patch)
>>>>    repeat in attach.
>>>>    Thanks.
>>>
>>> Ok, thanks.
>>>
>>> Keir: I guess this is not committed yet?
>>
>> I'm not too happy about the sleep(5). I guess if there's no better solution
>> coming up I should just whack this patch in?
>>
>>  -- Keir
>>
>>> -- Pasi
>>>
>>>>    2010/5/30 Pasi Kärkkäinen <[1]pasik@iki.fi>
>>>>
>>>>      On Sun, May 30, 2010 at 11:17:51AM +0400, eXeC001er wrote:
>>>>>      I've attempted to install Nexenta Core 3 image under Xen 4.0
>>>>      (2.6.32.13
>>>>>      pvops) on top of F13. Sample nexenta3.cfg profile contains 4
>>>>      lines like
>>>>>      this:-
>>>>>
>>>>>      disk=['tat:tapdisk:vhd:/path/../disk.img,xvda,w'] ( from sample)
>>>>>
>>>>>      It generates message
>>>>>      Â File 'vhd:/path/.../disk.img' doesn't exist.
>>>>>
>>>>>      Boris.
>>>>>      P.S. It was already in one of the threads @xen-users.
>>>>>
>>>>>    This bug in "def _parse_uname(uname):"
>>>>      (tools/python/xen/util/blkif.py)
>>>>>    (taptype, fn) = fn.split(":", 1) >>>>>>Â (taptype, fn) =
>>>>      fn.split(":",
>>>>>    2)[1:3]
>>>>
>>>>      Can you send a proper patch, as unified diff (diff -u), with a
>>>>      Signed-off-by line?
>>>>      -- Pasi
>>>>
>>>> References
>>>>
>>>>    Visible links
>>>>    1. mailto:pasik@iki.fi
>>>
>>>> diff -r d0420ab97345 tools/python/xen/util/blkif.py
>>>> --- a/tools/python/xen/util/blkif.py Fri May 21 16:21:39 2010 +0100
>>>> +++ b/tools/python/xen/util/blkif.py Sat May 22 01:21:15 2010 +0400
>>>> @@ -87,7 +87,7 @@
>>>>                  fn = "/dev/%s" %(fn,)
>>>>
>>>>          if typ in ("tap", "tap2"):
>>>> -            (taptype, fn) = fn.split(":", 1)
>>>> +            (taptype, fn) = fn.split(":", 2)[1:]
>>>>      return (fn, taptype)
>>>>
>>>>  def blkdev_uname_to_file(uname):
>>>> diff -r d0420ab97345 tools/python/xen/xend/XendDomainInfo.py
>>>> --- a/tools/python/xen/xend/XendDomainInfo.py Fri May 21 16:21:39 2010
>>>> +0100
>>>> +++ b/tools/python/xen/xend/XendDomainInfo.py Sat May 22 01:21:15 2010
>>>> +0400
>>>> @@ -3292,6 +3292,7 @@
>>>>                  fn = BOOTLOADER_LOOPBACK_DEVICE
>>>>
>>>>              try:
>>>> +                time.sleep(5)
>>>>                  blcfg = bootloader(blexec, fn, self, False,
>>>>                                     bootloader_args, kernel, ramdisk, args)
>>>>              finally:
>>>> @@ -3299,7 +3300,7 @@
>>>>                      log.info <http://log.info> ("Unmounting %s from %s." %
>>>>                               (fn, BOOTLOADER_LOOPBACK_DEVICE))
>>>>
>>>> -                    dom0.destroyDevice('tap', BOOTLOADER_LOOPBACK_DEVICE)
>>>> +                    dom0.destroyDevice(devtype,
>>>> BOOTLOADER_LOOPBACK_DEVICE)
>>>>
>>>>              if blcfg is None:
>>>>                  msg = "Had a bootloader specified, but can't find disk"
>>>
>>
>>
>
>