|
|
99cbc7 |
From 080e123711e8c31634567836c9ca1adf79bcf904 Mon Sep 17 00:00:00 2001
|
|
|
99cbc7 |
Message-Id: <080e123711e8c31634567836c9ca1adf79bcf904@dist-git>
|
|
|
99cbc7 |
From: Peter Krempa <pkrempa@redhat.com>
|
|
|
99cbc7 |
Date: Fri, 16 Aug 2019 14:36:52 +0200
|
|
|
99cbc7 |
Subject: [PATCH] util: storage: Allow checking whether virStorageFileCreate is
|
|
|
99cbc7 |
supported
|
|
|
99cbc7 |
MIME-Version: 1.0
|
|
|
99cbc7 |
Content-Type: text/plain; charset=UTF-8
|
|
|
99cbc7 |
Content-Transfer-Encoding: 8bit
|
|
|
99cbc7 |
|
|
|
99cbc7 |
Add virStorageFileSupportsCreate which allows silent check whether
|
|
|
99cbc7 |
virStorageFileCreate is implemented.
|
|
|
99cbc7 |
|
|
|
99cbc7 |
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
|
|
|
99cbc7 |
Reviewed-by: Ján Tomko <jtomko@redhat.com>
|
|
|
99cbc7 |
(cherry picked from commit e776194ad2501c9dcba8b4d9f1272342cd7f7c41)
|
|
|
99cbc7 |
https: //bugzilla.redhat.com/show_bug.cgi?id=1724808
|
|
|
99cbc7 |
Message-Id: <e4d77e48d0f20da3d0254c95de9904d77cf971df.1565958905.git.pkrempa@redhat.com>
|
|
|
99cbc7 |
Reviewed-by: Ján Tomko <jtomko@redhat.com>
|
|
|
99cbc7 |
---
|
|
|
99cbc7 |
src/libvirt_private.syms | 1 +
|
|
|
99cbc7 |
src/util/virstoragefile.c | 20 ++++++++++++++++++++
|
|
|
99cbc7 |
src/util/virstoragefile.h | 1 +
|
|
|
99cbc7 |
3 files changed, 22 insertions(+)
|
|
|
99cbc7 |
|
|
|
99cbc7 |
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
|
|
|
99cbc7 |
index bf99930802..e696fa512c 100644
|
|
|
99cbc7 |
--- a/src/libvirt_private.syms
|
|
|
99cbc7 |
+++ b/src/libvirt_private.syms
|
|
|
99cbc7 |
@@ -2845,6 +2845,7 @@ virStorageFileReportBrokenChain;
|
|
|
99cbc7 |
virStorageFileResize;
|
|
|
99cbc7 |
virStorageFileStat;
|
|
|
99cbc7 |
virStorageFileSupportsAccess;
|
|
|
99cbc7 |
+virStorageFileSupportsCreate;
|
|
|
99cbc7 |
virStorageFileSupportsSecurityDriver;
|
|
|
99cbc7 |
virStorageFileUnlink;
|
|
|
99cbc7 |
virStorageIsFile;
|
|
|
99cbc7 |
diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c
|
|
|
99cbc7 |
index f320bc1928..faf21db567 100644
|
|
|
99cbc7 |
--- a/src/util/virstoragefile.c
|
|
|
99cbc7 |
+++ b/src/util/virstoragefile.c
|
|
|
99cbc7 |
@@ -4446,6 +4446,26 @@ virStorageFileSupportsAccess(const virStorageSource *src)
|
|
|
99cbc7 |
}
|
|
|
99cbc7 |
|
|
|
99cbc7 |
|
|
|
99cbc7 |
+/**
|
|
|
99cbc7 |
+ * virStorageFileSupportsCreate:
|
|
|
99cbc7 |
+ * @src: a storage file structure
|
|
|
99cbc7 |
+ *
|
|
|
99cbc7 |
+ * Check if the storage driver supports creating storage described by @src
|
|
|
99cbc7 |
+ * via virStorageFileCreate.
|
|
|
99cbc7 |
+ */
|
|
|
99cbc7 |
+int
|
|
|
99cbc7 |
+virStorageFileSupportsCreate(const virStorageSource *src)
|
|
|
99cbc7 |
+{
|
|
|
99cbc7 |
+ virStorageFileBackendPtr backend;
|
|
|
99cbc7 |
+ int rv;
|
|
|
99cbc7 |
+
|
|
|
99cbc7 |
+ if ((rv = virStorageFileGetBackendForSupportCheck(src, &backend)) < 1)
|
|
|
99cbc7 |
+ return rv;
|
|
|
99cbc7 |
+
|
|
|
99cbc7 |
+ return backend->storageFileCreate ? 1 : 0;
|
|
|
99cbc7 |
+}
|
|
|
99cbc7 |
+
|
|
|
99cbc7 |
+
|
|
|
99cbc7 |
void
|
|
|
99cbc7 |
virStorageFileDeinit(virStorageSourcePtr src)
|
|
|
99cbc7 |
{
|
|
|
99cbc7 |
diff --git a/src/util/virstoragefile.h b/src/util/virstoragefile.h
|
|
|
99cbc7 |
index 7d28dcfe65..b99afee437 100644
|
|
|
99cbc7 |
--- a/src/util/virstoragefile.h
|
|
|
99cbc7 |
+++ b/src/util/virstoragefile.h
|
|
|
99cbc7 |
@@ -505,6 +505,7 @@ int virStorageFileChown(const virStorageSource *src, uid_t uid, gid_t gid);
|
|
|
99cbc7 |
|
|
|
99cbc7 |
int virStorageFileSupportsSecurityDriver(const virStorageSource *src);
|
|
|
99cbc7 |
int virStorageFileSupportsAccess(const virStorageSource *src);
|
|
|
99cbc7 |
+int virStorageFileSupportsCreate(const virStorageSource *src);
|
|
|
99cbc7 |
|
|
|
99cbc7 |
int virStorageFileGetMetadata(virStorageSourcePtr src,
|
|
|
99cbc7 |
uid_t uid, gid_t gid,
|
|
|
99cbc7 |
--
|
|
|
99cbc7 |
2.22.1
|
|
|
99cbc7 |
|