Index: libvirt-0.7.6/src/xen/xend_internal.c =================================================================== --- libvirt-0.7.6.orig/src/xen/xend_internal.c +++ libvirt-0.7.6/src/xen/xend_internal.c @@ -1606,7 +1606,8 @@ xenDaemonParseSxprDisks(virConnectPtr co but blktap disks ended up in a differently named (device (tap ....)) block.... */ if (sexpr_lookup(node, "device/vbd") || - sexpr_lookup(node, "device/tap")) { + sexpr_lookup(node, "device/tap") || + sexpr_lookup(node, "device/tap2")) { char *offset; const char *src = NULL; const char *dst = NULL; @@ -1617,10 +1618,14 @@ xenDaemonParseSxprDisks(virConnectPtr co src = sexpr_node(node, "device/vbd/uname"); dst = sexpr_node(node, "device/vbd/dev"); mode = sexpr_node(node, "device/vbd/mode"); - } else { + } else if (sexpr_lookup(node, "device/tap")) { src = sexpr_node(node, "device/tap/uname"); dst = sexpr_node(node, "device/tap/dev"); mode = sexpr_node(node, "device/tap/mode"); + } else { + src = sexpr_node(node, "device/tap2/uname"); + dst = sexpr_node(node, "device/tap2/dev"); + mode = sexpr_node(node, "device/tap2/mode"); } if (VIR_ALLOC(disk) < 0)