On 06/02/2010 01:09 PM, David Allan wrote:
* This patch adds the ability to make the filesystem for a
filesystem
pool during a pool build.
---
include/libvirt/libvirt.h.in | 6 +-
include/libvirt/virterror.h | 2 +
src/Makefile.am | 4 +
src/libvirt_private.syms | 4 +
src/storage/storage_backend_fs.c | 180 +++++++++++++++++++++++++++++++++++++-
src/storage/storage_backend_fs.h | 9 ++-
src/util/virterror.c | 12 +++
tools/virsh.c | 14 +++-
8 files changed, 224 insertions(+), 7 deletions(-)
Still no change to tools/virsh.pod? We really need to get in the habit
of documenting our changes, so that someone doing 'man virsh' knows that
they exist. And it wouldn't hurt if a separate patch changed
docs/api_extension/0008-* to better set that example.
diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in
index 19d5205..075beee 100644
--- a/include/libvirt/libvirt.h.in
+++ b/include/libvirt/libvirt.h.in
@@ -1126,8 +1126,10 @@ typedef enum {
typedef enum {
VIR_STORAGE_POOL_BUILD_NEW = 0, /* Regular build from scratch */
- VIR_STORAGE_POOL_BUILD_REPAIR = 1, /* Repair / reinitialize */
- VIR_STORAGE_POOL_BUILD_RESIZE = 2 /* Extend existing pool */
+ VIR_STORAGE_POOL_BUILD_REPAIR = (1 << 0), /* Repair / reinitialize */
+ VIR_STORAGE_POOL_BUILD_RESIZE = (1 << 1), /* Extend existing pool */
+ VIR_STORAGE_POOL_BUILD_NO_OVERWRITE = (1 << 2), /* Do not overwrite existing
pool */
+ VIR_STORAGE_POOL_BUILD_OVERWRITE = (1 << 3) /* Overwrite data */
We already assume C99 semantics of allowing a trailing comma; using it
here will make the next change to this enum touch one less line.
+++ b/include/libvirt/virterror.h
@@ -163,6 +163,8 @@ typedef enum {
VIR_WAR_NO_STORAGE, /* failed to start storage */
VIR_ERR_NO_STORAGE_POOL, /* storage pool not found */
VIR_ERR_NO_STORAGE_VOL, /* storage pool not found */
+ VIR_ERR_STORAGE_PROBE_FAILED, /* storage pool probe failed */
+ VIR_ERR_STORAGE_PROBE_BUILT, /* storage pool already built */
Typo in the name? I would have though VIR_ERR_STORAGE_POOL_BUILT.
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -624,6 +624,10 @@ virStorageFileGetMetadata;
virStorageFileGetMetadataFromFD;
virStorageFileIsSharedFS;
+# storage_backend_fs.h
+virStorageBackendFileSystemProbeLibblkid;
+virStorageBackendFileSystemProbeDummy;
You no longer need to export virStorageBackendFileSystemProbeDummy
+#else /* #if HAVE_LIBBLKID */
+
+static virStoragePoolProbeResult
+virStorageBackendFileSystemProbe(const char *device ATTRIBUTE_UNUSED,
+ const char *format ATTRIBUTE_UNUSED)
Wonky spacing.
+++ b/src/util/virterror.c
@@ -1019,6 +1019,18 @@ virErrorMsg(virErrorNumber error, const char *info)
else
errmsg = _("Storage volume not found: %s");
break;
+ case VIR_ERR_STORAGE_PROBE_FAILED:
+ if (info == NULL)
+ errmsg = _("Storage pool probe failed");
+ else
+ errmsg = _("Storage pool probe failed: %s");
+ break;
Wonky spacing, but it is forgivable since it is copy-n-paste from the
previous line's wonky-ness (the whole file could use some TLC, so don't
sweat it for this patch).
Note to self: another merge conflict if this goes in before my pending
virterror cleanups.
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org