[Pkg-libvirt-commits] [SCM] Libvirt Debian packaging branch, experimental, updated. debian/0.9.8_rc1-1

Guido Günther agx at sigxcpu.org
Sat Dec 3 14:34:31 UTC 2011


The following commit has been merged in the experimental branch:
commit 7546785e6207ea238d0e723f6d5577d9c382eb4c
Author: Guido Günther <agx at sigxcpu.org>
Date:   Sat Dec 3 13:40:01 2011 +0100

    Drop patch storage-forbid-rebuilding-existing-disk-storage-pool
    
    applied upstream.

diff --git a/debian/patches/series b/debian/patches/series
index 7353752..28c11bd 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -9,4 +9,3 @@ virsh-Initialize-library-before-calling-virResetLast.patch
 Disable-daemon-start-test.patch
 Disable-gnulib-s-test-nonplocking-pipe.sh.patch
 Disable-failing-virnetsockettest.patch
-storage-forbid-rebuilding-existing-disk-storage-pool.patch
diff --git a/debian/patches/storage-forbid-rebuilding-existing-disk-storage-pool.patch b/debian/patches/storage-forbid-rebuilding-existing-disk-storage-pool.patch
deleted file mode 100644
index d0c7792..0000000
--- a/debian/patches/storage-forbid-rebuilding-existing-disk-storage-pool.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx at sigxcpu.org>
-Date: Sat, 12 Nov 2011 13:31:52 +0100
-Subject: storage: forbid rebuilding existing disk storage pools
-
-which would blow away all volumes. Honor VIR_STORAGE_POOL_BUILD_OVERWRITE
-to force a rebuild.
-
-This was caught by libvirt-tck's storage/110-disk-pool.t.
----
- src/storage/storage_backend_disk.c |   72 ++++++++++++++++++++++++++++++++++--
- 1 files changed, 68 insertions(+), 4 deletions(-)
-
-diff --git a/src/storage/storage_backend_disk.c b/src/storage/storage_backend_disk.c
-index 82d6e8a..995ad2f 100644
---- a/src/storage/storage_backend_disk.c
-+++ b/src/storage/storage_backend_disk.c
-@@ -335,6 +335,40 @@ virStorageBackendDiskRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED,
- 
- 
- /**
-+ * Check for a valid disk label (partition table) on device
-+ *
-+ * return: 0 - valid disk label found
-+ *        >0 - no or unrecognized disk label
-+ *        <0 - error finding the disk label
-+ */
-+static int
-+virStorageBackendDiskFindLabel(const char* device)
-+{
-+    const char *const args[] = {
-+        device, "print", "--script", NULL,
-+    };
-+    virCommandPtr cmd = virCommandNew(PARTED);
-+    char *output = NULL;
-+    int ret = -1;
-+
-+    virCommandAddArgSet(cmd, args);
-+    virCommandAddEnvString(cmd, "LC_ALL=C");
-+    virCommandSetOutputBuffer(cmd, &output);
-+
-+    /* if parted succeeds we have a valid partition table */
-+    ret = virCommandRun(cmd, NULL);
-+    if (ret < 0) {
-+        if (strstr (output, "unrecognised disk label"))
-+            ret = 1;
-+    }
-+
-+    virCommandFree(cmd);
-+    VIR_FREE(output);
-+    return ret;
-+}
-+
-+
-+/**
-  * Write a new partition table header
-  */
- static int
-@@ -342,6 +376,8 @@ virStorageBackendDiskBuildPool(virConnectPtr conn ATTRIBUTE_UNUSED,
-                                virStoragePoolObjPtr pool,
-                                unsigned int flags)
- {
-+    bool ok_to_mklabel = false;
-+    int ret = -1;
-     /* eg parted /dev/sda mklabel msdos */
-     const char *prog[] = {
-         PARTED,
-@@ -353,12 +389,40 @@ virStorageBackendDiskBuildPool(virConnectPtr conn ATTRIBUTE_UNUSED,
-         NULL,
-     };
- 
--    virCheckFlags(0, -1);
-+    virCheckFlags(VIR_STORAGE_POOL_BUILD_OVERWRITE |
-+                  VIR_STORAGE_POOL_BUILD_NO_OVERWRITE, ret);
- 
--    if (virRun(prog, NULL) < 0)
--        return -1;
-+    if (flags == (VIR_STORAGE_POOL_BUILD_OVERWRITE |
-+                  VIR_STORAGE_POOL_BUILD_NO_OVERWRITE)) {
-+        virStorageReportError(VIR_ERR_OPERATION_INVALID,
-+                              _("Overwrite and no overwrite flags"
-+                                " are mutually exclusive"));
-+        goto error;
-+    }
- 
--    return 0;
-+    if (flags & VIR_STORAGE_POOL_BUILD_OVERWRITE)
-+        ok_to_mklabel = true;
-+    else {
-+        int check;
-+
-+        check = virStorageBackendDiskFindLabel (
-+                    pool->def->source.devices[0].path);
-+        if (check > 0) {
-+            ok_to_mklabel = true;
-+        } else if (check < 0) {
-+            virStorageReportError(VIR_ERR_OPERATION_FAILED,
-+                                  _("Error checking for disk label"));
-+        } else {
-+            virStorageReportError(VIR_ERR_OPERATION_INVALID,
-+                                  _("Disk label already present"));
-+        }
-+    }
-+
-+    if (ok_to_mklabel)
-+        ret = virRun(prog, NULL);
-+
-+error:
-+    return ret;
- }
- 
- /**
--- 

-- 
Libvirt Debian packaging



More information about the Pkg-libvirt-commits mailing list