[libvirt] [PATCH 7/9] Implement the remote dispatch bits of vol zeroing

David Allan dallan at redhat.com
Tue Mar 2 22:13:32 UTC 2010


* I had to remove daemon/remote_dispatch* and do a make remote.c in daemon in order to get the dispatch files regenerated properly.  The make was failing before I did that.
---
 daemon/remote.c                     |   32 ++++++++++++++++++++++++++++++++
 daemon/remote_dispatch_args.h       |    1 +
 daemon/remote_dispatch_prototypes.h |    8 ++++++++
 daemon/remote_dispatch_table.h      |    5 +++++
 4 files changed, 46 insertions(+), 0 deletions(-)

diff --git a/daemon/remote.c b/daemon/remote.c
index d4713b2..7621044 100644
--- a/daemon/remote.c
+++ b/daemon/remote.c
@@ -4273,6 +4273,38 @@ remoteDispatchStorageVolDelete (struct qemud_server *server ATTRIBUTE_UNUSED,
 }

 static int
+remoteDispatchStorageVolZeroOut(struct qemud_server *server ATTRIBUTE_UNUSED,
+                                struct qemud_client *client ATTRIBUTE_UNUSED,
+                                virConnectPtr conn,
+                                remote_message_header *hdr ATTRIBUTE_UNUSED,
+                                remote_error *rerr,
+                                remote_storage_vol_zero_out_args *args,
+                                void *ret ATTRIBUTE_UNUSED)
+{
+    int retval = -1;
+    virStorageVolPtr vol;
+
+    vol = get_nonnull_storage_vol(conn, args->vol);
+    if (vol == NULL) {
+        remoteDispatchConnError(rerr, conn);
+        goto out;
+    }
+
+    if (virStorageVolZeroOut(vol, args->flags) == -1) {
+        remoteDispatchConnError(rerr, conn);
+        goto out;
+    }
+
+    retval = 0;
+
+out:
+    if (vol != NULL) {
+        virStorageVolFree(vol);
+    }
+    return retval;
+}
+
+static int
 remoteDispatchStorageVolGetInfo (struct qemud_server *server ATTRIBUTE_UNUSED,
                                  struct qemud_client *client ATTRIBUTE_UNUSED,
                                  virConnectPtr conn,
diff --git a/daemon/remote_dispatch_args.h b/daemon/remote_dispatch_args.h
index f97155b..3ddbec4 100644
--- a/daemon/remote_dispatch_args.h
+++ b/daemon/remote_dispatch_args.h
@@ -140,3 +140,4 @@
     remote_cpu_baseline_args val_remote_cpu_baseline_args;
     remote_domain_get_job_info_args val_remote_domain_get_job_info_args;
     remote_domain_abort_job_args val_remote_domain_abort_job_args;
+    remote_storage_vol_zero_out_args val_remote_storage_vol_zero_out_args;
diff --git a/daemon/remote_dispatch_prototypes.h b/daemon/remote_dispatch_prototypes.h
index b81c8c3..db8e323 100644
--- a/daemon/remote_dispatch_prototypes.h
+++ b/daemon/remote_dispatch_prototypes.h
@@ -1298,6 +1298,14 @@ static int remoteDispatchStorageVolLookupByPath(
     remote_error *err,
     remote_storage_vol_lookup_by_path_args *args,
     remote_storage_vol_lookup_by_path_ret *ret);
+static int remoteDispatchStorageVolZeroOut(
+    struct qemud_server *server,
+    struct qemud_client *client,
+    virConnectPtr conn,
+    remote_message_header *hdr,
+    remote_error *err,
+    remote_storage_vol_zero_out_args *args,
+    void *ret);
 static int remoteDispatchSupportsFeature(
     struct qemud_server *server,
     struct qemud_client *client,
diff --git a/daemon/remote_dispatch_table.h b/daemon/remote_dispatch_table.h
index 5ad6bff..11d9744 100644
--- a/daemon/remote_dispatch_table.h
+++ b/daemon/remote_dispatch_table.h
@@ -827,3 +827,8 @@
     .args_filter = (xdrproc_t) xdr_remote_domain_abort_job_args,
     .ret_filter = (xdrproc_t) xdr_void,
 },
+{   /* StorageVolZeroOut => 165 */
+    .fn = (dispatch_fn) remoteDispatchStorageVolZeroOut,
+    .args_filter = (xdrproc_t) xdr_remote_storage_vol_zero_out_args,
+    .ret_filter = (xdrproc_t) xdr_void,
+},
-- 
1.6.5.5




More information about the libvir-list mailing list