From: Osier Yang Date: Mon, 19 Sep 2011 07:35:15 +0000 (+0800) Subject: storage: Ensure the device path exists before refreshing disk pool X-Git-Tag: v0.9.5~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=891c6fd74f1d485ab81eff34b8a15a79528373f1;p=thirdparty%2Flibvirt.git storage: Ensure the device path exists before refreshing disk pool Doing libvirt_parthelper on an not existed device path will get an unfriendly error message. This patch is to prohibit it. --- diff --git a/src/storage/storage_backend_disk.c b/src/storage/storage_backend_disk.c index 80f9dd1ff4..82d6e8a5b4 100644 --- a/src/storage/storage_backend_disk.c +++ b/src/storage/storage_backend_disk.c @@ -262,7 +262,6 @@ static int virStorageBackendDiskReadPartitions(virStoragePoolObjPtr pool, virStorageVolDefPtr vol) { - /* * # libvirt_parthelper DEVICE * /dev/sda1 normal data 32256 106928128 106896384 @@ -320,6 +319,13 @@ virStorageBackendDiskRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED, virFileWaitForDevices(); + if (!virFileExists(pool->def->source.devices[0].path)) { + virStorageReportError(VIR_ERR_INVALID_ARG, + _("device path '%s' doesn't exist"), + pool->def->source.devices[0].path); + return -1; + } + if (virStorageBackendDiskReadGeometry(pool) != 0) { return -1; }