render / rpms / libvirt

Forked from rpms/libvirt 9 months ago
Clone
c1c534
From a77029a7a8885902edbc0034c15c2a609a1093ba Mon Sep 17 00:00:00 2001
c1c534
Message-Id: <a77029a7a8885902edbc0034c15c2a609a1093ba@dist-git>
c1c534
From: Peter Krempa <pkrempa@redhat.com>
c1c534
Date: Thu, 23 Nov 2017 19:02:18 +0100
c1c534
Subject: [PATCH] qemu: block: Add function to check if storage source allows
c1c534
 concurrent access
c1c534
c1c534
Storage source format backing a shared device (e.g. running a cluster
c1c534
filesystem) needs to support the sharing so that metadata are not
c1c534
corrupted. Add a central function for checking this.
c1c534
c1c534
(cherry picked from commit 1fc3cd8731640aefc48bbd9fc489f21cb99c6f67)
c1c534
c1c534
 Conflicts:
c1c534
	src/qemu/qemu_block.c: context of one of the blockdev-add saga
c1c534
                               refactors not being backported
c1c534
c1c534
https://bugzilla.redhat.com/show_bug.cgi?id=1511480
c1c534
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
c1c534
---
c1c534
 src/qemu/qemu_block.c | 15 +++++++++++++++
c1c534
 src/qemu/qemu_block.h |  3 +++
c1c534
 2 files changed, 18 insertions(+)
c1c534
c1c534
diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c
c1c534
index 0761f89913..86fa565f39 100644
c1c534
--- a/src/qemu/qemu_block.c
c1c534
+++ b/src/qemu/qemu_block.c
c1c534
@@ -390,6 +390,21 @@ qemuBlockGetNodeData(virJSONValuePtr data)
c1c534
 }
c1c534
 
c1c534
 
c1c534
+/**
c1c534
+ * qemuBlockStorageSourceSupportsConcurrentAccess:
c1c534
+ * @src: disk storage source
c1c534
+ *
c1c534
+ * Returns true if the given storage format supports concurrent access from two
c1c534
+ * separate processes.
c1c534
+ */
c1c534
+bool
c1c534
+qemuBlockStorageSourceSupportsConcurrentAccess(virStorageSourcePtr src)
c1c534
+{
c1c534
+    /* no need to check in backing chain since only RAW storage supports this */
c1c534
+    return src->format == VIR_STORAGE_FILE_RAW;
c1c534
+}
c1c534
+
c1c534
+
c1c534
 /**
c1c534
  * qemuBlockStorageSourceBuildJSONSocketAddress
c1c534
  * @host: the virStorageNetHostDefPtr definition to build
c1c534
diff --git a/src/qemu/qemu_block.h b/src/qemu/qemu_block.h
c1c534
index f0a2c9aa7d..ebf3149ce8 100644
c1c534
--- a/src/qemu/qemu_block.h
c1c534
+++ b/src/qemu/qemu_block.h
c1c534
@@ -53,6 +53,9 @@ qemuBlockNodeNamesDetect(virQEMUDriverPtr driver,
c1c534
 virHashTablePtr
c1c534
 qemuBlockGetNodeData(virJSONValuePtr data);
c1c534
 
c1c534
+bool
c1c534
+qemuBlockStorageSourceSupportsConcurrentAccess(virStorageSourcePtr src);
c1c534
+
c1c534
 virJSONValuePtr
c1c534
 qemuBlockStorageSourceGetBackendProps(virStorageSourcePtr src);
c1c534
 
c1c534
-- 
c1c534
2.15.0
c1c534