|
|
|
@ -1,7 +1,107 @@
|
|
|
|
|
Index: qemu-3.1+dfsg/qapi/block-core.json
|
|
|
|
|
===================================================================
|
|
|
|
|
--- qemu-3.1+dfsg.orig/qapi/block-core.json
|
|
|
|
|
+++ qemu-3.1+dfsg/qapi/block-core.json
|
|
|
|
|
diff --git a/block/Makefile.objs b/block/Makefile.objs
|
|
|
|
|
index 46d585cfd0..62222f25fe 100644
|
|
|
|
|
--- a/block/Makefile.objs
|
|
|
|
|
+++ b/block/Makefile.objs
|
|
|
|
|
@@ -29,6 +29,7 @@ block-obj-$(if $(CONFIG_LIBISCSI),y,n) += iscsi-opts.o
|
|
|
|
|
block-obj-$(CONFIG_LIBNFS) += nfs.o
|
|
|
|
|
block-obj-$(CONFIG_CURL) += curl.o
|
|
|
|
|
block-obj-$(CONFIG_RBD) += rbd.o
|
|
|
|
|
+block-obj-$(CONFIG_VITASTOR) += vitastor.o
|
|
|
|
|
block-obj-$(CONFIG_GLUSTERFS) += gluster.o
|
|
|
|
|
block-obj-$(CONFIG_VXHS) += vxhs.o
|
|
|
|
|
block-obj-$(CONFIG_LIBSSH2) += ssh.o
|
|
|
|
|
@@ -49,6 +50,8 @@ curl.o-cflags := $(CURL_CFLAGS)
|
|
|
|
|
curl.o-libs := $(CURL_LIBS)
|
|
|
|
|
rbd.o-cflags := $(RBD_CFLAGS)
|
|
|
|
|
rbd.o-libs := $(RBD_LIBS)
|
|
|
|
|
+vitastor.o-cflags := $(VITASTOR_CFLAGS)
|
|
|
|
|
+vitastor.o-libs := $(VITASTOR_LIBS)
|
|
|
|
|
gluster.o-cflags := $(GLUSTERFS_CFLAGS)
|
|
|
|
|
gluster.o-libs := $(GLUSTERFS_LIBS)
|
|
|
|
|
vxhs.o-libs := $(VXHS_LIBS)
|
|
|
|
|
diff --git a/configure b/configure
|
|
|
|
|
index 1c9f6090e8..25ef89c33a 100755
|
|
|
|
|
--- a/configure
|
|
|
|
|
+++ b/configure
|
|
|
|
|
@@ -422,6 +422,7 @@ trace_backends="log"
|
|
|
|
|
trace_file="trace"
|
|
|
|
|
spice=""
|
|
|
|
|
rbd=""
|
|
|
|
|
+vitastor=""
|
|
|
|
|
smartcard=""
|
|
|
|
|
libusb=""
|
|
|
|
|
usb_redir=""
|
|
|
|
|
@@ -1282,6 +1283,10 @@ for opt do
|
|
|
|
|
;;
|
|
|
|
|
--enable-rbd) rbd="yes"
|
|
|
|
|
;;
|
|
|
|
|
+ --disable-vitastor) vitastor="no"
|
|
|
|
|
+ ;;
|
|
|
|
|
+ --enable-vitastor) vitastor="yes"
|
|
|
|
|
+ ;;
|
|
|
|
|
--disable-xfsctl) xfs="no"
|
|
|
|
|
;;
|
|
|
|
|
--enable-xfsctl) xfs="yes"
|
|
|
|
|
@@ -1737,6 +1742,7 @@ disabled with --disable-FEATURE, default is enabled if available:
|
|
|
|
|
vhost-crypto vhost-crypto acceleration support
|
|
|
|
|
spice spice
|
|
|
|
|
rbd rados block device (rbd)
|
|
|
|
|
+ vitastor vitastor block device
|
|
|
|
|
libiscsi iscsi support
|
|
|
|
|
libnfs nfs support
|
|
|
|
|
smartcard smartcard support (libcacard)
|
|
|
|
|
@@ -3722,6 +3728,27 @@ EOF
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
+##########################################
|
|
|
|
|
+# vitastor probe
|
|
|
|
|
+if test "$vitastor" != "no" ; then
|
|
|
|
|
+ cat > $TMPC <<EOF
|
|
|
|
|
+#include <vitastor_c.h>
|
|
|
|
|
+int main(void) {
|
|
|
|
|
+ vitastor_c_create_qemu(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
|
|
|
|
+ return 0;
|
|
|
|
|
+}
|
|
|
|
|
+EOF
|
|
|
|
|
+ vitastor_libs="-lvitastor_client"
|
|
|
|
|
+ if compile_prog "" "$vitastor_libs" ; then
|
|
|
|
|
+ vitastor=yes
|
|
|
|
|
+ else
|
|
|
|
|
+ if test "$vitastor" = "yes" ; then
|
|
|
|
|
+ feature_not_found "vitastor block device" "Install vitastor-client-dev"
|
|
|
|
|
+ fi
|
|
|
|
|
+ vitastor=no
|
|
|
|
|
+ fi
|
|
|
|
|
+fi
|
|
|
|
|
+
|
|
|
|
|
##########################################
|
|
|
|
|
# libssh2 probe
|
|
|
|
|
min_libssh2_version=1.2.8
|
|
|
|
|
@@ -6109,6 +6136,7 @@ echo "Trace output file $trace_file-<pid>"
|
|
|
|
|
fi
|
|
|
|
|
echo "spice support $spice $(echo_version $spice $spice_protocol_version/$spice_server_version)"
|
|
|
|
|
echo "rbd support $rbd"
|
|
|
|
|
+echo "vitastor support $vitastor"
|
|
|
|
|
echo "xfsctl support $xfs"
|
|
|
|
|
echo "smartcard support $smartcard"
|
|
|
|
|
echo "libusb $libusb"
|
|
|
|
|
@@ -6694,6 +6722,11 @@ if test "$rbd" = "yes" ; then
|
|
|
|
|
echo "RBD_CFLAGS=$rbd_cflags" >> $config_host_mak
|
|
|
|
|
echo "RBD_LIBS=$rbd_libs" >> $config_host_mak
|
|
|
|
|
fi
|
|
|
|
|
+if test "$vitastor" = "yes" ; then
|
|
|
|
|
+ echo "CONFIG_VITASTOR=m" >> $config_host_mak
|
|
|
|
|
+ echo "VITASTOR_CFLAGS=$vitastor_cflags" >> $config_host_mak
|
|
|
|
|
+ echo "VITASTOR_LIBS=$vitastor_libs" >> $config_host_mak
|
|
|
|
|
+fi
|
|
|
|
|
|
|
|
|
|
echo "CONFIG_COROUTINE_BACKEND=$coroutine" >> $config_host_mak
|
|
|
|
|
if test "$coroutine_pool" = "yes" ; then
|
|
|
|
|
diff --git a/qapi/block-core.json b/qapi/block-core.json
|
|
|
|
|
index d4fe710836..dbad3327b3 100644
|
|
|
|
|
--- a/qapi/block-core.json
|
|
|
|
|
+++ b/qapi/block-core.json
|
|
|
|
|
@@ -2617,7 +2617,7 @@
|
|
|
|
|
##
|
|
|
|
|
{ 'enum': 'BlockdevDriver',
|
|
|
|
@ -11,10 +111,11 @@ Index: qemu-3.1+dfsg/qapi/block-core.json
|
|
|
|
|
'host_cdrom', 'host_device', 'http', 'https', 'iscsi', 'luks',
|
|
|
|
|
'nbd', 'nfs', 'null-aio', 'null-co', 'nvme', 'parallels', 'qcow',
|
|
|
|
|
'qcow2', 'qed', 'quorum', 'raw', 'rbd', 'replication', 'sheepdog',
|
|
|
|
|
@@ -3367,6 +3367,28 @@
|
|
|
|
|
@@ -3366,6 +3366,28 @@
|
|
|
|
|
'*snap-id': 'uint32',
|
|
|
|
|
'*tag': 'str' } }
|
|
|
|
|
|
|
|
|
|
##
|
|
|
|
|
+##
|
|
|
|
|
+# @BlockdevOptionsVitastor:
|
|
|
|
|
+#
|
|
|
|
|
+# Driver specific block device options for vitastor
|
|
|
|
@ -36,11 +137,10 @@ Index: qemu-3.1+dfsg/qapi/block-core.json
|
|
|
|
|
+ '*etcd-host': 'str',
|
|
|
|
|
+ '*etcd-prefix': 'str' } }
|
|
|
|
|
+
|
|
|
|
|
+##
|
|
|
|
|
##
|
|
|
|
|
# @ReplicationMode:
|
|
|
|
|
#
|
|
|
|
|
# An enumeration of replication modes.
|
|
|
|
|
@@ -3713,6 +3731,7 @@
|
|
|
|
|
@@ -3713,6 +3735,7 @@
|
|
|
|
|
'rbd': 'BlockdevOptionsRbd',
|
|
|
|
|
'replication':'BlockdevOptionsReplication',
|
|
|
|
|
'sheepdog': 'BlockdevOptionsSheepdog',
|
|
|
|
@ -48,10 +148,11 @@ Index: qemu-3.1+dfsg/qapi/block-core.json
|
|
|
|
|
'ssh': 'BlockdevOptionsSsh',
|
|
|
|
|
'throttle': 'BlockdevOptionsThrottle',
|
|
|
|
|
'vdi': 'BlockdevOptionsGenericFormat',
|
|
|
|
|
@@ -4158,6 +4177,17 @@
|
|
|
|
|
@@ -4157,6 +4180,17 @@
|
|
|
|
|
'*subformat': 'BlockdevVhdxSubformat',
|
|
|
|
|
'*block-state-zero': 'bool' } }
|
|
|
|
|
|
|
|
|
|
##
|
|
|
|
|
+##
|
|
|
|
|
+# @BlockdevCreateOptionsVitastor:
|
|
|
|
|
+#
|
|
|
|
|
+# Driver specific image creation options for Vitastor.
|
|
|
|
@ -62,11 +163,10 @@ Index: qemu-3.1+dfsg/qapi/block-core.json
|
|
|
|
|
+ 'data': { 'location': 'BlockdevOptionsVitastor',
|
|
|
|
|
+ 'size': 'size' } }
|
|
|
|
|
+
|
|
|
|
|
+##
|
|
|
|
|
##
|
|
|
|
|
# @BlockdevVpcSubformat:
|
|
|
|
|
#
|
|
|
|
|
# @dynamic: Growing image file
|
|
|
|
|
@@ -4212,6 +4242,7 @@
|
|
|
|
|
@@ -4212,6 +4246,7 @@
|
|
|
|
|
'qed': 'BlockdevCreateOptionsQed',
|
|
|
|
|
'rbd': 'BlockdevCreateOptionsRbd',
|
|
|
|
|
'sheepdog': 'BlockdevCreateOptionsSheepdog',
|
|
|
|
@ -74,15 +174,3 @@ Index: qemu-3.1+dfsg/qapi/block-core.json
|
|
|
|
|
'ssh': 'BlockdevCreateOptionsSsh',
|
|
|
|
|
'vdi': 'BlockdevCreateOptionsVdi',
|
|
|
|
|
'vhdx': 'BlockdevCreateOptionsVhdx',
|
|
|
|
|
Index: qemu-3.1+dfsg/scripts/modules/module_block.py
|
|
|
|
|
===================================================================
|
|
|
|
|
--- qemu-3.1+dfsg.orig/scripts/modules/module_block.py
|
|
|
|
|
+++ qemu-3.1+dfsg/scripts/modules/module_block.py
|
|
|
|
|
@@ -88,6 +88,7 @@ def print_bottom(fheader):
|
|
|
|
|
output_file = sys.argv[1]
|
|
|
|
|
with open(output_file, 'w') as fheader:
|
|
|
|
|
print_top(fheader)
|
|
|
|
|
+ add_module(fheader, "vitastor", "vitastor", "vitastor")
|
|
|
|
|
|
|
|
|
|
for filename in sys.argv[2:]:
|
|
|
|
|
if os.path.isfile(filename):
|
|
|
|
|