提交 5e3e9919 编写于 作者: P Peter Krempa

util: Add function to check if a virStorageSource is "empty"

To express empty drive we historically use storage source with empty
path. Unfortunately NBD disks may be declared without a path.

Add a helper to wrap this logic.
上级 3c07693a
...@@ -1941,6 +1941,7 @@ virStorageSourceFree; ...@@ -1941,6 +1941,7 @@ virStorageSourceFree;
virStorageSourceGetActualType; virStorageSourceGetActualType;
virStorageSourceGetSecurityLabelDef; virStorageSourceGetSecurityLabelDef;
virStorageSourceInitChainElement; virStorageSourceInitChainElement;
virStorageSourceIsEmpty;
virStorageSourceIsLocalStorage; virStorageSourceIsLocalStorage;
virStorageSourceNewFromBacking; virStorageSourceNewFromBacking;
virStorageSourcePoolDefFree; virStorageSourcePoolDefFree;
......
...@@ -1975,6 +1975,27 @@ virStorageSourceIsLocalStorage(virStorageSourcePtr src) ...@@ -1975,6 +1975,27 @@ virStorageSourceIsLocalStorage(virStorageSourcePtr src)
} }
/**
* virStorageSourceIsEmpty:
*
* @src: disk source to check
*
* Returns true if the guest disk has no associated host storage source
* (such as an empty cdrom drive).
*/
bool
virStorageSourceIsEmpty(virStorageSourcePtr src)
{
if (virStorageSourceIsLocalStorage(src) && !src->path)
return true;
if (src->type == VIR_STORAGE_TYPE_NONE)
return true;
return false;
}
/** /**
* virStorageSourceBackingStoreClear: * virStorageSourceBackingStoreClear:
* *
......
...@@ -353,6 +353,7 @@ void virStorageSourcePoolDefFree(virStorageSourcePoolDefPtr def); ...@@ -353,6 +353,7 @@ void virStorageSourcePoolDefFree(virStorageSourcePoolDefPtr def);
void virStorageSourceClear(virStorageSourcePtr def); void virStorageSourceClear(virStorageSourcePtr def);
int virStorageSourceGetActualType(virStorageSourcePtr def); int virStorageSourceGetActualType(virStorageSourcePtr def);
bool virStorageSourceIsLocalStorage(virStorageSourcePtr src); bool virStorageSourceIsLocalStorage(virStorageSourcePtr src);
bool virStorageSourceIsEmpty(virStorageSourcePtr src);
void virStorageSourceFree(virStorageSourcePtr def); void virStorageSourceFree(virStorageSourcePtr def);
void virStorageSourceBackingStoreClear(virStorageSourcePtr def); void virStorageSourceBackingStoreClear(virStorageSourcePtr def);
virStorageSourcePtr virStorageSourceNewFromBacking(virStorageSourcePtr parent); virStorageSourcePtr virStorageSourceNewFromBacking(virStorageSourcePtr parent);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册