mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
tools: remove blktap2 related code and documentation
Blktap2 is effectively dead for a few years. Notable changes in this patch: 0. Unhook blktap2 from build system 1. libxl no longer supports TAP disk backend, with appropriate assertions added and some code paths now return ERROR_FAIL 2. Tap is no longer a supported backend 3. Remove blktap2 entry from MAINTAINERS A patch to remove blktap2 directory will come later. Signed-off-by: Wei Liu <wei.liu2@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
This commit is contained in:
1 parent
03e48b7b2a
commit
5c883cf036
24 files changed
+8
-408
No files matched your search
-15
@@ -115,20 +115,6 @@ tools/libs/foreignmemory/headers.chk
|
||||
tools/libs/foreignmemory/xenforeignmemory.pc
|
||||
tools/libs/devicemodel/headers.chk
|
||||
tools/libs/devicemodel/xendevicemodel.pc
|
||||
tools/blktap2/control/xenblktapctl.pc
|
||||
tools/blktap2/daemon/blktapctrl
|
||||
tools/blktap2/drivers/img2qcow
|
||||
tools/blktap2/drivers/lock-util
|
||||
tools/blktap2/drivers/qcow-create
|
||||
tools/blktap2/drivers/qcow2raw
|
||||
tools/blktap2/drivers/tapdisk
|
||||
tools/blktap2/drivers/tapdisk-client
|
||||
tools/blktap2/drivers/tapdisk-diff
|
||||
tools/blktap2/drivers/tapdisk-stream
|
||||
tools/blktap2/drivers/tapdisk2
|
||||
tools/blktap2/drivers/td-util
|
||||
tools/blktap2/vhd/vhd-update
|
||||
tools/blktap2/vhd/vhd-util
|
||||
tools/console/xenconsole
|
||||
tools/console/xenconsoled
|
||||
tools/console/client/_paths.h
|
||||
@@ -383,7 +369,6 @@ tools/libxl/*.pyc
|
||||
tools/libxl/libxl-save-helper
|
||||
tools/libxl/test_timedereg
|
||||
tools/libxl/test_fdderegrace
|
||||
tools/blktap2/control/tap-ctl
|
||||
tools/firmware/etherboot/eb-roms.h
|
||||
tools/firmware/etherboot/gpxe-git-snapshot.tar.gz
|
||||
tools/misc/xenwatchdogd
|
||||
|
||||
@@ -128,18 +128,6 @@
|
||||
^stubdom/stubdompath\.sh$
|
||||
^stubdom/vtpm/vtpm_manager\.h$
|
||||
^tools/.*/build/lib.*/.*\.py$
|
||||
^tools/blktap2/control/tap-ctl$
|
||||
^tools/blktap2/drivers/img2qcow$
|
||||
^tools/blktap2/drivers/lock-util$
|
||||
^tools/blktap2/drivers/qcow-create$
|
||||
^tools/blktap2/drivers/qcow2raw$
|
||||
^tools/blktap2/drivers/tapdisk-client$
|
||||
^tools/blktap2/drivers/tapdisk-diff$
|
||||
^tools/blktap2/drivers/tapdisk-stream$
|
||||
^tools/blktap2/drivers/tapdisk2$
|
||||
^tools/blktap2/drivers/td-util$
|
||||
^tools/blktap2/vhd/vhd-update$
|
||||
^tools/blktap2/vhd/vhd-util$
|
||||
^tools/check/\..*$
|
||||
^tools/console/xenconsole$
|
||||
^tools/console/xenconsoled$
|
||||
|
||||
@@ -144,10 +144,6 @@ this detection and the sysv runlevel scripts have to be used.
|
||||
--with-systemd=DIR
|
||||
--with-systemd-modules-load=DIR
|
||||
|
||||
The old backend drivers are disabled because qdisk is now the default.
|
||||
This option can be used to build them anyway.
|
||||
--enable-blktap2
|
||||
|
||||
Build various stubom components, some are only example code. Its usually
|
||||
enough to specify just --enable-stubdom and leave these options alone.
|
||||
--enable-ioemu-stubdom
|
||||
|
||||
@@ -192,10 +192,6 @@ F: xen/include/asm-arm/
|
||||
F: xen/include/public/arch-arm/
|
||||
F: xen/include/public/arch-arm.h
|
||||
|
||||
BLKTAP2
|
||||
S: Orphaned
|
||||
F: tools/blktap2/
|
||||
|
||||
Continuous Integration (CI)
|
||||
M: Doug Goldstein <cardoe@cardoe.com>
|
||||
W: https://gitlab.com/xen-project/xen
|
||||
|
||||
@@ -53,7 +53,6 @@ CONFIG_SEABIOS := @seabios@
|
||||
CONFIG_IPXE := @ipxe@
|
||||
CONFIG_QEMU_TRAD := @qemu_traditional@
|
||||
CONFIG_QEMU_XEN := @qemu_xen@
|
||||
CONFIG_BLKTAP2 := @blktap2@
|
||||
CONFIG_QEMUU_EXTRA_ARGS:= @EXTRA_QEMUU_CONFIGURE_ARGS@
|
||||
CONFIG_LIBNL := @libnl@
|
||||
|
||||
|
||||
@@ -232,7 +232,7 @@ Specifies the backend implementation to use
|
||||
|
||||
=item Supported values
|
||||
|
||||
phy, tap, qdisk
|
||||
phy, qdisk
|
||||
|
||||
=item Mandatory
|
||||
|
||||
|
||||
@@ -20,7 +20,6 @@ SUBDIRS-y += console
|
||||
SUBDIRS-y += xenmon
|
||||
SUBDIRS-y += xenstat
|
||||
SUBDIRS-$(CONFIG_Linux) += memshr
|
||||
SUBDIRS-$(CONFIG_BLKTAP2) += blktap2
|
||||
SUBDIRS-$(CONFIG_NetBSD) += xenbackendd
|
||||
SUBDIRS-y += libfsimage
|
||||
SUBDIRS-$(CONFIG_Linux) += libvchan
|
||||
|
||||
+1
-15
@@ -25,7 +25,6 @@ XEN_XENLIGHT = $(XEN_ROOT)/tools/libxl
|
||||
XEN_XLUTIL = $(XEN_XENLIGHT)
|
||||
XEN_XENSTORE = $(XEN_ROOT)/tools/xenstore
|
||||
XEN_LIBXENSTAT = $(XEN_ROOT)/tools/xenstat/libxenstat/src
|
||||
XEN_BLKTAP2 = $(XEN_ROOT)/tools/blktap2
|
||||
XEN_LIBVCHAN = $(XEN_ROOT)/tools/libvchan
|
||||
|
||||
CFLAGS_xeninclude = -I$(XEN_INCLUDE)
|
||||
@@ -174,21 +173,8 @@ else
|
||||
CFLAGS += -O2 -fomit-frame-pointer
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_BLKTAP2),y)
|
||||
CFLAGS_libblktapctl = -I$(XEN_BLKTAP2)/control -I$(XEN_BLKTAP2)/include $(CFLAGS_xeninclude)
|
||||
SHDEPS_libblktapctl =
|
||||
LDLIBS_libblktapctl = $(SHDEPS_libblktapctl) $(XEN_BLKTAP2)/control/libblktapctl$(libextension)
|
||||
SHLIB_libblktapctl = $(SHDEPS_libblktapctl) -Wl,-rpath-link=$(XEN_BLKTAP2)/control
|
||||
else
|
||||
CFLAGS_libblktapctl =
|
||||
SHDEPS_libblktapctl =
|
||||
LDLIBS_libblktapctl =
|
||||
SHLIB_libblktapctl =
|
||||
PKG_CONFIG_REMOVE += xenblktapctl
|
||||
endif
|
||||
|
||||
CFLAGS_libxenlight = -I$(XEN_XENLIGHT) $(CFLAGS_libxenctrl) $(CFLAGS_xeninclude)
|
||||
SHDEPS_libxenlight = $(SHLIB_libxenctrl) $(SHLIB_libxenstore) $(SHLIB_libblktapctl)
|
||||
SHDEPS_libxenlight = $(SHLIB_libxenctrl) $(SHLIB_libxenstore)
|
||||
LDLIBS_libxenlight = $(SHDEPS_libxenlight) $(XEN_XENLIGHT)/libxenlight$(libextension)
|
||||
SHLIB_libxenlight = $(SHDEPS_libxenlight) -Wl,-rpath-link=$(XEN_XENLIGHT)
|
||||
|
||||
|
||||
@@ -3,9 +3,6 @@
|
||||
/* Enabling support partial device tree in libxl */
|
||||
#undef ENABLE_PARTIAL_DEVICE_TREE
|
||||
|
||||
/* Blktap2 enabled */
|
||||
#undef HAVE_BLKTAP2
|
||||
|
||||
/* Define to 1 if you have the declaration of `fdt_first_subnode', and to 0 if
|
||||
you don't. */
|
||||
#undef HAVE_DECL_FDT_FIRST_SUBNODE
|
||||
@@ -27,9 +24,6 @@
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define to 1 if you have the `aio' library (-laio). */
|
||||
#undef HAVE_LIBAIO
|
||||
|
||||
/* Define to 1 if you have the `fdt' library (-lfdt). */
|
||||
#undef HAVE_LIBFDT
|
||||
|
||||
|
||||
Vendored
-78
@@ -704,7 +704,6 @@ BCC
|
||||
LD86
|
||||
AS86
|
||||
qemu_traditional
|
||||
blktap2
|
||||
LINUX_BACKEND_MODULES
|
||||
seabios
|
||||
ovmf
|
||||
@@ -809,7 +808,6 @@ enable_xsmpolicy
|
||||
enable_ovmf
|
||||
enable_seabios
|
||||
with_linux_backend_modules
|
||||
enable_blktap2
|
||||
enable_qemu_traditional
|
||||
enable_rombios
|
||||
with_system_qemu
|
||||
@@ -1495,7 +1493,6 @@ Optional Features:
|
||||
--disable-xsmpolicy Disable XSM policy compilation (default is ENABLED)
|
||||
--enable-ovmf Enable OVMF (default is DISABLED)
|
||||
--disable-seabios Disable SeaBIOS (default is ENABLED)
|
||||
--enable-blktap2 Enable blktap2, (DEFAULT is off)
|
||||
--enable-qemu-traditional
|
||||
Enable qemu traditional device model, (DEFAULT is on
|
||||
for Linux or NetBSD x86, otherwise off)
|
||||
@@ -4225,7 +4222,6 @@ xen-scsibk
|
||||
usbbk
|
||||
pciback
|
||||
xen-acpi-processor
|
||||
blktap2
|
||||
"
|
||||
;;
|
||||
*)
|
||||
@@ -4237,29 +4233,6 @@ fi
|
||||
LINUX_BACKEND_MODULES="`eval echo $LINUX_BACKEND_MODULES`"
|
||||
|
||||
|
||||
# Check whether --enable-blktap2 was given.
|
||||
if test "${enable_blktap2+set}" = set; then :
|
||||
enableval=$enable_blktap2;
|
||||
else
|
||||
|
||||
enable_blktap2="no"
|
||||
|
||||
fi
|
||||
|
||||
if test "x$enable_blktap2" = "xyes"; then :
|
||||
|
||||
|
||||
$as_echo "#define HAVE_BLKTAP2 1" >>confdefs.h
|
||||
|
||||
blktap2=y
|
||||
else
|
||||
|
||||
blktap2=n
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
||||
# Check whether --enable-qemu-traditional was given.
|
||||
if test "${enable_qemu_traditional+set}" = set; then :
|
||||
enableval=$enable_qemu_traditional;
|
||||
@@ -8471,57 +8444,6 @@ fi
|
||||
|
||||
|
||||
|
||||
if test "x$enable_blktap2" = "xyes"; then :
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for io_setup in -laio" >&5
|
||||
$as_echo_n "checking for io_setup in -laio... " >&6; }
|
||||
if ${ac_cv_lib_aio_io_setup+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
ac_check_lib_save_LIBS=$LIBS
|
||||
LIBS="-laio $LIBS"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
/* Override any GCC internal prototype to avoid an error.
|
||||
Use char because int might match the return type of a GCC
|
||||
builtin and then its argument prototype would still apply. */
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
char io_setup ();
|
||||
int
|
||||
main ()
|
||||
{
|
||||
return io_setup ();
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
ac_cv_lib_aio_io_setup=yes
|
||||
else
|
||||
ac_cv_lib_aio_io_setup=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
LIBS=$ac_check_lib_save_LIBS
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_aio_io_setup" >&5
|
||||
$as_echo "$ac_cv_lib_aio_io_setup" >&6; }
|
||||
if test "x$ac_cv_lib_aio_io_setup" = xyes; then :
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define HAVE_LIBAIO 1
|
||||
_ACEOF
|
||||
|
||||
LIBS="-laio $LIBS"
|
||||
|
||||
else
|
||||
as_fn_error $? "Could not find libaio" "$LINENO" 5
|
||||
fi
|
||||
|
||||
|
||||
fi
|
||||
|
||||
|
||||
ac_fn_c_check_header_mongrel "$LINENO" "ext2fs/ext2fs.h" "ac_cv_header_ext2fs_ext2fs_h" "$ac_includes_default"
|
||||
|
||||
@@ -106,7 +106,6 @@ xen-scsibk
|
||||
usbbk
|
||||
pciback
|
||||
xen-acpi-processor
|
||||
blktap2
|
||||
"
|
||||
;;
|
||||
*)
|
||||
@@ -116,20 +115,6 @@ esac])
|
||||
LINUX_BACKEND_MODULES="`eval echo $LINUX_BACKEND_MODULES`"
|
||||
AC_SUBST(LINUX_BACKEND_MODULES)
|
||||
|
||||
dnl Enable blktap2 on Linux only.
|
||||
AC_ARG_ENABLE([blktap2],
|
||||
AS_HELP_STRING([--enable-blktap2],
|
||||
[Enable blktap2, (DEFAULT is off)]),,[
|
||||
enable_blktap2="no"
|
||||
])
|
||||
AS_IF([test "x$enable_blktap2" = "xyes"], [
|
||||
AC_DEFINE([HAVE_BLKTAP2], [1], [Blktap2 enabled])
|
||||
blktap2=y],[
|
||||
blktap2=n
|
||||
])
|
||||
AC_SUBST(blktap2)
|
||||
|
||||
|
||||
AC_ARG_ENABLE([qemu-traditional],
|
||||
AS_HELP_STRING([--enable-qemu-traditional],
|
||||
[Enable qemu traditional device model, (DEFAULT is on for Linux or NetBSD x86, otherwise off)]),,[
|
||||
@@ -402,9 +387,6 @@ AC_CHECK_HEADER([lzo/lzo1x.h], [
|
||||
AC_CHECK_LIB([lzo2], [lzo1x_decompress], [zlib="$zlib -DHAVE_LZO1X -llzo2"])
|
||||
])
|
||||
AC_SUBST(zlib)
|
||||
AS_IF([test "x$enable_blktap2" = "xyes"], [
|
||||
AC_CHECK_LIB([aio], [io_setup], [], [AC_MSG_ERROR([Could not find libaio])])
|
||||
])
|
||||
AC_SUBST(system_aio)
|
||||
AX_CHECK_EXTFS
|
||||
AX_CHECK_PTHREAD
|
||||
|
||||
@@ -28,7 +28,7 @@ import "C"
|
||||
* -lnl-route-3 -lnl-3
|
||||
*
|
||||
* To get back to static linking:
|
||||
* #cgo LDFLAGS: -lxenlight -lyajl_s -lxengnttab -lxenstore -lxenguest -lxentoollog -lxenevtchn -lxenctrl -lblktapctl -lxenforeignmemory -lxencall -lz -luuid -lutil
|
||||
* #cgo LDFLAGS: -lxenlight -lyajl_s -lxengnttab -lxenstore -lxenguest -lxentoollog -lxenevtchn -lxenctrl -lxenforeignmemory -lxencall -lz -luuid -lutil
|
||||
*/
|
||||
|
||||
import (
|
||||
|
||||
@@ -20,7 +20,7 @@ LIBUUID_LIBS += -luuid
|
||||
endif
|
||||
|
||||
LIBXL_LIBS =
|
||||
LIBXL_LIBS = $(LDLIBS_libxentoollog) $(LDLIBS_libxenevtchn) $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(LDLIBS_libxenstore) $(LDLIBS_libblktapctl) $(LDLIBS_libxentoolcore) $(PTYFUNCS_LIBS) $(LIBUUID_LIBS)
|
||||
LIBXL_LIBS = $(LDLIBS_libxentoollog) $(LDLIBS_libxenevtchn) $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(LDLIBS_libxenstore) $(LDLIBS_libxentoolcore) $(PTYFUNCS_LIBS) $(LIBUUID_LIBS)
|
||||
ifeq ($(CONFIG_LIBNL),y)
|
||||
LIBXL_LIBS += $(LIBNL3_LIBS)
|
||||
endif
|
||||
@@ -31,7 +31,6 @@ CFLAGS_LIBXL += $(CFLAGS_libxenevtchn)
|
||||
CFLAGS_LIBXL += $(CFLAGS_libxenctrl)
|
||||
CFLAGS_LIBXL += $(CFLAGS_libxenguest)
|
||||
CFLAGS_LIBXL += $(CFLAGS_libxenstore)
|
||||
CFLAGS_LIBXL += $(CFLAGS_libblktapctl)
|
||||
ifeq ($(CONFIG_LIBNL),y)
|
||||
CFLAGS_LIBXL += $(LIBNL3_CFLAGS)
|
||||
endif
|
||||
@@ -47,11 +46,6 @@ LIBXL_LIBS += $(LIBXL_LIBS-y)
|
||||
LIBXLU_LIBS = $(LDLIBS_libxenlight)
|
||||
|
||||
LIBXL_OBJS-y = osdeps.o libxl_paths.o libxl_bootloader.o flexarray.o
|
||||
ifeq ($(CONFIG_BLKTAP2),y)
|
||||
LIBXL_OBJS-y += libxl_blktap2.o
|
||||
else
|
||||
LIBXL_OBJS-y += libxl_noblktap2.o
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_LIBNL),y)
|
||||
LIBXL_OBJS-y += libxl_netbuffer.o
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
set -e
|
||||
|
||||
if [ -x ./xl ] ; then
|
||||
export LD_LIBRARY_PATH=.:../libxc:../xenstore:../blktap2/control
|
||||
export LD_LIBRARY_PATH=.:../libxc:../xenstore
|
||||
XL=./xl
|
||||
else
|
||||
XL=xl
|
||||
|
||||
@@ -1,94 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2010 Advanced Micro Devices
|
||||
* Author Christoph Egger <Christoph.Egger@amd.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published
|
||||
* by the Free Software Foundation; version 2.1 only.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*/
|
||||
|
||||
#include "libxl_osdeps.h" /* must come before any other headers */
|
||||
#include "libxl_internal.h"
|
||||
|
||||
#include "tap-ctl.h"
|
||||
|
||||
int libxl__blktap_enabled(libxl__gc *gc)
|
||||
{
|
||||
const char *msg;
|
||||
return !tap_ctl_check(&msg);
|
||||
}
|
||||
|
||||
char *libxl__blktap_devpath(libxl__gc *gc,
|
||||
const char *disk,
|
||||
libxl_disk_format format)
|
||||
{
|
||||
const char *type;
|
||||
char *params, *devname = NULL;
|
||||
tap_list_t tap;
|
||||
int err;
|
||||
|
||||
type = libxl__device_disk_string_of_format(format);
|
||||
err = tap_ctl_find(type, disk, &tap);
|
||||
if (err == 0) {
|
||||
devname = GCSPRINTF("/dev/xen/blktap-2/tapdev%d", tap.minor);
|
||||
if (devname)
|
||||
return devname;
|
||||
}
|
||||
|
||||
params = GCSPRINTF("%s:%s", type, disk);
|
||||
err = tap_ctl_create(params, &devname);
|
||||
if (!err) {
|
||||
libxl__ptr_add(gc, devname);
|
||||
return devname;
|
||||
}
|
||||
|
||||
free(devname);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
int libxl__device_destroy_tapdisk(libxl__gc *gc, const char *params)
|
||||
{
|
||||
char *type, *disk;
|
||||
int err;
|
||||
tap_list_t tap;
|
||||
|
||||
type = libxl__strdup(gc, params);
|
||||
|
||||
disk = strchr(type, ':');
|
||||
if (!disk) {
|
||||
LOG(ERROR, "Unable to parse params %s", params);
|
||||
return ERROR_INVAL;
|
||||
}
|
||||
|
||||
*disk++ = '\0';
|
||||
|
||||
err = tap_ctl_find(type, disk, &tap);
|
||||
if (err < 0) {
|
||||
/* returns -errno */
|
||||
LOGEV(ERROR, -err, "Unable to find type %s disk %s", type, disk);
|
||||
return ERROR_FAIL;
|
||||
}
|
||||
|
||||
err = tap_ctl_destroy(tap.id, tap.minor);
|
||||
if (err < 0) {
|
||||
LOGEV(ERROR, -err, "Failed to destroy tap device id %d minor %d",
|
||||
tap.id, tap.minor);
|
||||
return ERROR_FAIL;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* mode: C
|
||||
* c-basic-offset: 4
|
||||
* indent-tabs-mode: nil
|
||||
* End:
|
||||
*/
|
||||
@@ -321,26 +321,9 @@ static int disk_try_backend(disk_try_backend_args *a,
|
||||
return 0;
|
||||
|
||||
case LIBXL_DISK_BACKEND_TAP:
|
||||
if (a->disk->script) goto bad_script;
|
||||
|
||||
if (libxl_defbool_val(a->disk->colo_enable))
|
||||
goto bad_colo;
|
||||
|
||||
if (a->disk->is_cdrom) {
|
||||
LOG(DEBUG, "Disk vdev=%s, backend tap unsuitable for cdroms",
|
||||
a->disk->vdev);
|
||||
return 0;
|
||||
}
|
||||
if (!libxl__blktap_enabled(a->gc)) {
|
||||
LOG(DEBUG, "Disk vdev=%s, backend tap unsuitable because blktap "
|
||||
"not available", a->disk->vdev);
|
||||
return 0;
|
||||
}
|
||||
if (!(a->disk->format == LIBXL_DISK_FORMAT_RAW ||
|
||||
a->disk->format == LIBXL_DISK_FORMAT_VHD)) {
|
||||
goto bad_format;
|
||||
}
|
||||
return backend;
|
||||
|
||||
case LIBXL_DISK_BACKEND_QDISK:
|
||||
if (a->disk->script) goto bad_script;
|
||||
@@ -746,19 +729,11 @@ int libxl__device_destroy(libxl__gc *gc, libxl__device *dev)
|
||||
const char *be_path = NULL;
|
||||
const char *fe_path = NULL;
|
||||
const char *libxl_path = libxl__device_libxl_path(gc, dev);
|
||||
const char *tapdisk_path = NULL;
|
||||
const char *tapdisk_params = NULL;
|
||||
xs_transaction_t t = 0;
|
||||
int rc;
|
||||
uint32_t domid;
|
||||
int libxl_only = dev->backend_kind == LIBXL__DEVICE_KIND_NONE;
|
||||
|
||||
if (!libxl_only) {
|
||||
be_path = libxl__device_backend_path(gc, dev);
|
||||
fe_path = libxl__device_frontend_path(gc, dev);
|
||||
tapdisk_path = GCSPRINTF("%s/%s", be_path, "tapdisk-params");
|
||||
}
|
||||
|
||||
rc = libxl__get_domid(gc, &domid);
|
||||
if (rc) goto out;
|
||||
|
||||
@@ -766,12 +741,6 @@ int libxl__device_destroy(libxl__gc *gc, libxl__device *dev)
|
||||
rc = libxl__xs_transaction_start(gc, &t);
|
||||
if (rc) goto out;
|
||||
|
||||
/* May not exist if this is not a tap device */
|
||||
if (tapdisk_path) {
|
||||
rc = libxl__xs_read_checked(gc, t, tapdisk_path, &tapdisk_params);
|
||||
if (rc) goto out;
|
||||
}
|
||||
|
||||
if (domid == LIBXL_TOOLSTACK_DOMID) {
|
||||
/*
|
||||
* The toolstack domain is in charge of removing the
|
||||
@@ -794,9 +763,6 @@ int libxl__device_destroy(libxl__gc *gc, libxl__device *dev)
|
||||
if (rc < 0) goto out;
|
||||
}
|
||||
|
||||
if (tapdisk_params)
|
||||
rc = libxl__device_destroy_tapdisk(gc, tapdisk_params);
|
||||
|
||||
out:
|
||||
libxl__xs_transaction_abort(gc, &t);
|
||||
return rc;
|
||||
|
||||
@@ -321,7 +321,6 @@ static void device_disk_add(libxl__egc *egc, uint32_t domid,
|
||||
case LIBXL_DISK_BACKEND_PHY:
|
||||
dev = disk->pdev_path;
|
||||
|
||||
do_backend_phy:
|
||||
flexarray_append(back, "params");
|
||||
flexarray_append(back, dev);
|
||||
|
||||
@@ -333,27 +332,9 @@ static void device_disk_add(libxl__egc *egc, uint32_t domid,
|
||||
break;
|
||||
|
||||
case LIBXL_DISK_BACKEND_TAP:
|
||||
if (dev == NULL) {
|
||||
dev = libxl__blktap_devpath(gc, disk->pdev_path,
|
||||
disk->format);
|
||||
if (!dev) {
|
||||
LOGD(ERROR, domid, "Failed to get blktap devpath for %p",
|
||||
disk->pdev_path);
|
||||
LOG(ERROR, "blktap is not supported");
|
||||
rc = ERROR_FAIL;
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
flexarray_append(back, "tapdisk-params");
|
||||
flexarray_append(back, GCSPRINTF("%s:%s",
|
||||
libxl__device_disk_string_of_format(disk->format),
|
||||
disk->pdev_path));
|
||||
|
||||
/* tap backends with scripts are rejected by
|
||||
* libxl__device_disk_set_backend */
|
||||
assert(!disk->script);
|
||||
|
||||
/* now create a phy device to export the device to the guest */
|
||||
goto do_backend_phy;
|
||||
case LIBXL_DISK_BACKEND_QDISK:
|
||||
flexarray_append(back, "params");
|
||||
flexarray_append(back, GCSPRINTF("%s:%s",
|
||||
|
||||
+1
-12
@@ -1812,18 +1812,7 @@ static int libxl__build_device_model_args_new(libxl__gc *gc,
|
||||
continue;
|
||||
}
|
||||
|
||||
/*
|
||||
* We can't call libxl__blktap_devpath from
|
||||
* libxl__device_disk_find_local_path for now because
|
||||
* the bootloader is called before the disks are set
|
||||
* up, so this function would set up a blktap node,
|
||||
* but there's no TAP tear-down on error conditions in
|
||||
* the bootloader path.
|
||||
*/
|
||||
if (disks[i].backend == LIBXL_DISK_BACKEND_TAP)
|
||||
target_path = libxl__blktap_devpath(gc, disks[i].pdev_path,
|
||||
disks[i].format);
|
||||
else
|
||||
assert(disks[i].backend != LIBXL_DISK_BACKEND_TAP);
|
||||
target_path = libxl__device_disk_find_local_path(gc,
|
||||
guest_domid, &disks[i], true);
|
||||
|
||||
|
||||
@@ -1892,32 +1892,6 @@ struct libxl__cpuid_policy {
|
||||
char *policy[4];
|
||||
};
|
||||
|
||||
/*
|
||||
* blktap2 support
|
||||
*/
|
||||
|
||||
/* libxl__blktap_enabled:
|
||||
* return true if blktap/blktap2 support is available.
|
||||
*/
|
||||
_hidden int libxl__blktap_enabled(libxl__gc *gc);
|
||||
|
||||
/* libxl__blktap_devpath:
|
||||
* Argument: path and disk image as specified in config file.
|
||||
* The type specifies whether this is aio, qcow, qcow2, etc.
|
||||
* returns device path xenstore wants to have. returns NULL
|
||||
* if no device corresponds to the disk.
|
||||
*/
|
||||
_hidden char *libxl__blktap_devpath(libxl__gc *gc,
|
||||
const char *disk,
|
||||
libxl_disk_format format);
|
||||
|
||||
/* libxl__device_destroy_tapdisk:
|
||||
* Destroys any tapdisk process associated with the backend represented
|
||||
* by be_path.
|
||||
* Always logs on failure.
|
||||
*/
|
||||
_hidden int libxl__device_destroy_tapdisk(libxl__gc *gc, const char *params);
|
||||
|
||||
/* Calls poll() again - useful to check whether a signaled condition
|
||||
* is still true. Cannot fail. Returns currently-true revents. */
|
||||
_hidden short libxl__fd_poll_recheck(libxl__egc *egc, int fd, short events);
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2010 Advanced Micro Devices
|
||||
* Author Christoph Egger <Christoph.Egger@amd.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published
|
||||
* by the Free Software Foundation; version 2.1 only.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*/
|
||||
|
||||
#include "libxl_osdeps.h" /* must come before any other headers */
|
||||
|
||||
#include "libxl_internal.h"
|
||||
|
||||
int libxl__blktap_enabled(libxl__gc *gc)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
char *libxl__blktap_devpath(libxl__gc *gc,
|
||||
const char *disk,
|
||||
libxl_disk_format format)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int libxl__device_destroy_tapdisk(libxl__gc *gc, const char *params)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* mode: C
|
||||
* c-basic-offset: 4
|
||||
* indent-tabs-mode: nil
|
||||
* End:
|
||||
*/
|
||||
@@ -9,4 +9,4 @@ Description: The Xenlight library for Xen hypervisor
|
||||
Version: @@version@@
|
||||
Cflags: -I${includedir}
|
||||
Libs: @@libsflag@@${libdir} -lxenlight
|
||||
Requires.private: xentoollog,xenevtchn,xencontrol,xenguest,xenstore,xenblktapctl
|
||||
Requires.private: xentoollog,xenevtchn,xencontrol,xenguest,xenstore
|
||||
@@ -1,10 +1,5 @@
|
||||
/* Copyright (C) 2004 Christopher Clark <firstname.lastname@cl.cam.ac.uk> */
|
||||
|
||||
/*
|
||||
* There are duplicates of this code in:
|
||||
* - tools/blktap2/drivers/hashtable.c
|
||||
*/
|
||||
|
||||
#include "hashtable.h"
|
||||
#include "hashtable_private.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
@@ -1,10 +1,5 @@
|
||||
/* Copyright (C) 2002 Christopher Clark <firstname.lastname@cl.cam.ac.uk> */
|
||||
|
||||
/*
|
||||
* There are duplicates of this code in:
|
||||
* - tools/blktap2/drivers/hashtable.h
|
||||
*/
|
||||
|
||||
#ifndef __HASHTABLE_CWC22_H__
|
||||
#define __HASHTABLE_CWC22_H__
|
||||
|
||||
|
||||
@@ -1,10 +1,5 @@
|
||||
/* Copyright (C) 2002, 2004 Christopher Clark <firstname.lastname@cl.cam.ac.uk> */
|
||||
|
||||
/*
|
||||
* There are duplicates of this code in:
|
||||
* - tools/blktap2/drivers/hashtable_private.h
|
||||
*/
|
||||
|
||||
#ifndef __HASHTABLE_PRIVATE_CWC22_H__
|
||||
#define __HASHTABLE_PRIVATE_CWC22_H__
|
||||
|
||||
|
||||