From: Peter Krempa Date: Tue, 14 Nov 2017 14:34:46 +0000 (+0100) Subject: qemu: block: Add function to check if storage source allows concurrent access X-Git-Tag: v3.10.0-rc1~61 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1fc3cd8731640aefc48bbd9fc489f21cb99c6f67;p=thirdparty%2Flibvirt.git qemu: block: Add function to check if storage source allows concurrent access Storage source format backing a shared device (e.g. running a cluster filesystem) needs to support the sharing so that metadata are not corrupted. Add a central function for checking this. --- diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index 8b23df8227..29a341f149 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -390,6 +390,21 @@ qemuBlockGetNodeData(virJSONValuePtr data) } +/** + * qemuBlockStorageSourceSupportsConcurrentAccess: + * @src: disk storage source + * + * Returns true if the given storage format supports concurrent access from two + * separate processes. + */ +bool +qemuBlockStorageSourceSupportsConcurrentAccess(virStorageSourcePtr src) +{ + /* no need to check in backing chain since only RAW storage supports this */ + return src->format == VIR_STORAGE_FILE_RAW; +} + + /** * qemuBlockStorageSourceGetURI: * @src: disk storage source diff --git a/src/qemu/qemu_block.h b/src/qemu/qemu_block.h index b9ee97f488..45485733fc 100644 --- a/src/qemu/qemu_block.h +++ b/src/qemu/qemu_block.h @@ -54,6 +54,9 @@ qemuBlockNodeNamesDetect(virQEMUDriverPtr driver, virHashTablePtr qemuBlockGetNodeData(virJSONValuePtr data); +bool +qemuBlockStorageSourceSupportsConcurrentAccess(virStorageSourcePtr src); + virJSONValuePtr qemuBlockStorageSourceGetBackendProps(virStorageSourcePtr src);