Blob Blame History Raw
From ac8be144a43d647546bacafbf0ae52b0e3ca587a Mon Sep 17 00:00:00 2001
From: Miroslav Rezanina <mrezanin@redhat.com>
Date: Mon, 7 Jul 2014 09:24:19 +0200
Subject: Partial commit of 87123eabfa1ee7cef51066fd7fd8e7d5ecd0419f block:

Due to changes in qapi files rebase is not trivial and need to be checked by Jeff

Adding this partial commit to allow easier rebase of following patches

Mirek

diff --git a/Makefile b/Makefile
index 5c3878b..8ace246 100644
--- a/Makefile
+++ b/Makefile
@@ -2,6 +2,11 @@
 
 # Always point to the root of the build tree (needs GNU make).
 BUILD_DIR=$(CURDIR)
+# useful for passing ' ' and ',' into Makefile functional calls,
+# as these characters cannot be passed otherwise
+_empty :=  
+_space := $(_empty) $(_empty)
+_comma := ,
 
 # All following code might depend on configuration variables
 ifneq ($(wildcard config-host.mak),)
@@ -291,6 +296,7 @@ clean:
 	rm -f trace/generated-tracers-dtrace.h*
 	rm -f $(foreach f,$(GENERATED_HEADERS),$(f) $(f)-timestamp)
 	rm -f $(foreach f,$(GENERATED_SOURCES),$(f) $(f)-timestamp)
+	rm -f $(foreach f,$(GENERATED_JSON_FILES),$(f) $(f)-timestamp)
 	rm -rf qapi-generated
 	rm -rf qga/qapi-generated
 	for d in $(ALL_SUBDIRS); do \
diff --git a/block/Makefile.objs b/block/Makefile.objs
index 908c966..e078f17 100644
--- a/block/Makefile.objs
+++ b/block/Makefile.objs
@@ -20,9 +20,11 @@ block-obj-$(CONFIG_GLUSTERFS) += gluster.o
 block-obj-$(CONFIG_LIBSSH2) += ssh.o
 endif
 
+ifeq ($(CONFIG_LIVE_BLOCK_OPS),y)
 common-obj-y += stream.o
 common-obj-y += commit.o
 common-obj-y += mirror.o
+endif
 common-obj-y += backup.o
 
 iscsi.o-cflags     := $(LIBISCSI_CFLAGS)
diff --git a/blockdev.c b/blockdev.c
index 48bd9a3..eeecdf8 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -231,6 +231,8 @@ typedef struct {
     BlockDriverState *bs;
 } BDRVPutRefBH;
 
+/* right now, this is only used from block_job_cb() */
+#ifdef CONFIG_LIVE_BLOCK_OPS
 static void bdrv_put_ref_bh(void *opaque)
 {
     BDRVPutRefBH *s = opaque;
@@ -256,6 +258,7 @@ static void bdrv_put_ref_bh_schedule(BlockDriverState *bs)
     s->bs = bs;
     qemu_bh_schedule(s->bh);
 }
+#endif
 
 static int parse_block_error_action(const char *buf, bool is_read, Error **errp)
 {
@@ -994,6 +997,7 @@ void do_commit(Monitor *mon, const QDict *qdict)
     }
 }
 
+#ifdef CONFIG_LIVE_BLOCK_OPS
 static void blockdev_do_action(int kind, void *data, Error **errp)
 {
     TransactionAction action;
@@ -1545,6 +1549,7 @@ exit:
         g_free(state);
     }
 }
+#endif
 
 
 static void eject_device(BlockDriverState *bs, int force, Error **errp)
@@ -1849,6 +1854,7 @@ void qmp_block_resize(bool has_device, const char *device,
     }
 }
 
+#ifdef CONFIG_LIVE_BLOCK_OPS
 static void block_job_cb(void *opaque, int ret)
 {
     BlockDriverState *bs = opaque;
@@ -2302,6 +2308,7 @@ void qmp_drive_mirror(const char *device, const char *target,
         return;
     }
 }
+#endif
 
 static BlockJob *find_block_job(const char *device)
 {
diff --git a/configure b/configure
index f552374..c9118b1 100755
--- a/configure
+++ b/configure
@@ -333,8 +333,10 @@ tpm="yes"
 libssh2=""
 vhdx=""
 quorum=""
+live_block_ops="yes"
 numa=""
 
+
 # parse CC options first
 for opt do
   optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
@@ -1116,6 +1118,10 @@ for opt do
   ;;
   --enable-quorum) quorum="yes"
   ;;
+  --disable-live-block-ops) live_block_ops="no"
+  ;;
+  --enable-live-block-ops) live_block_ops="yes"
+  ;;
   --disable-numa) numa="no"
   ;;
   --enable-numa) numa="yes"
@@ -1386,6 +1392,8 @@ Advanced options (experts only):
   --enable-vhdx            enable support for the Microsoft VHDX image format
   --disable-quorum         disable quorum block filter support
   --enable-quorum          enable quorum block filter support
+  --disable-live-block-ops disable live block operations support
+  --enable-live-block-ops  enable live block operations support
   --disable-numa           disable libnuma support
   --enable-numa            enable libnuma support
 
@@ -4228,6 +4236,7 @@ echo "vhdx              $vhdx"
 echo "Quorum            $quorum"
 echo "lzo support       $lzo"
 echo "snappy support    $snappy"
+echo "Live block operations $live_block_ops"
 echo "NUMA host support $numa"
 
 if test "$sdl_too_old" = "yes"; then
@@ -4668,6 +4677,10 @@ if test "$vhdx" = "yes" ; then
   echo "CONFIG_VHDX=y" >> $config_host_mak
 fi
 
+if test "$live_block_ops" = "yes" ; then
+  echo "CONFIG_LIVE_BLOCK_OPS=y" >> $config_host_mak
+fi
+
 # USB host support
 if test "$libusb" = "yes"; then
   echo "HOST_USB=libusb legacy" >> $config_host_mak