
On 09/09/2014 02:45 AM, Peter Krempa wrote:
To allow the compiler to track future additions of disk types, convert the function to use a switch statement with the correct type. --- src/util/virstoragefile.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c index 5b6b2f5..299edcd 100644 --- a/src/util/virstoragefile.c +++ b/src/util/virstoragefile.c @@ -1956,7 +1956,22 @@ virStorageSourceGetActualType(virStorageSourcePtr def) bool virStorageSourceIsLocalStorage(virStorageSourcePtr src) { - return virStorageSourceGetActualType(src) != VIR_STORAGE_TYPE_NETWORK; + virStorageType type = virStorageSourceGetActualType(src); + + switch (type) { + case VIR_STORAGE_TYPE_FILE: + case VIR_STORAGE_TYPE_BLOCK: + case VIR_STORAGE_TYPE_DIR: + return true; + + case VIR_STORAGE_TYPE_NETWORK: + case VIR_STORAGE_TYPE_VOLUME: + case VIR_STORAGE_TYPE_LAST: + case VIR_STORAGE_TYPE_NONE:
Might be worth a comment that TYPE_NETWORK (and maybe TYPE_NONE) is expected, while the other cases represent coding error (the GetActualType should have gotten rid of TYPE_VOLUME, and TYPE_LAST should never be present; TYPE_NONE is possible only if we hit something that we truly do not know what type it has). -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org