[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