qemu: block: Add accessors for format layer node names

Introduce a set of accessors, which return node names based on
semantics. This will allow to us to modify how we setup the backing
chain in cases when e.g. the format driver can be omitted, without
breaking all the code.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Peter Krempa 2023-09-20 15:24:14 +02:00
parent 02ea7182c2
commit 239772a035
2 changed files with 38 additions and 0 deletions

View File

@ -69,6 +69,23 @@ qemuBlockStorageSourceSetStorageNodename(virStorageSource *src,
}
/**
* qemuBlockStorageSourceSetFormatNodename:
* @src: virStorageSource to set the format nodename
* @nodename: The node name to set (stolen)
*
* Sets @nodename as the format node name of @src. Using NULL @nodename clears
* the nodename. @src takes ownership of @nodename.
*/
void
qemuBlockStorageSourceSetFormatNodename(virStorageSource *src,
char *nodename)
{
g_free(src->nodeformat);
src->nodeformat = nodename;
}
/**
* qemuBlockStorageSourceGetEffectiveStorageNodename:
* @src: virStorageSource to get the effective nodename of
@ -100,6 +117,20 @@ qemuBlockStorageSourceGetStorageNodename(virStorageSource *src)
}
/**
* qemuBlockStorageSourceGetFormatNodename:
* @src: virStorageSource to get the effective nodename of
*
* Gets the nodename corresponding to the format layer. Useful when accessing
* format specific features. Returns NULL if there is no format layer.
*/
const char *
qemuBlockStorageSourceGetFormatNodename(virStorageSource *src)
{
return src->nodeformat;
}
/**
* qemuBlockStorageSourceSupportsConcurrentAccess:
* @src: disk storage source

View File

@ -30,12 +30,19 @@ void
qemuBlockStorageSourceSetStorageNodename(virStorageSource *src,
char *nodename);
void
qemuBlockStorageSourceSetFormatNodename(virStorageSource *src,
char *nodename);
const char *
qemuBlockStorageSourceGetEffectiveStorageNodename(virStorageSource *src);
const char *
qemuBlockStorageSourceGetStorageNodename(virStorageSource *src);
const char *
qemuBlockStorageSourceGetFormatNodename(virStorageSource *src);
typedef struct qemuBlockNodeNameBackingChainData qemuBlockNodeNameBackingChainData;
struct qemuBlockNodeNameBackingChainData {