[libvirt] [PATCH v2] storage: Do not break the whole vol lookup process in the middle

* src/storage/storage_driver.c: As virStorageVolLookupByPath lookups all the pool objs of the drivers, breaking when failing on getting the stable path of the pool will just breaks the whole lookup process, it can cause the API fails even if the vol exists indeed. It won't get any benefit. This patch is to fix it. --- src/storage/storage_driver.c | 13 ++++++------- 1 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c index c05b74e..8c2d6e1 100644 --- a/src/storage/storage_driver.c +++ b/src/storage/storage_driver.c @@ -1247,14 +1247,14 @@ storageVolumeLookupByPath(virConnectPtr conn, stable_path = virStorageBackendStablePath(driver->pools.objs[i], cleanpath); - /* - * virStorageBackendStablePath already does - * virStorageReportError if it fails; we just need to keep - * propagating the return code - */ if (stable_path == NULL) { + /* Don't break the whole lookup process if it fails on + * getting the stable path for some of the pools. + */ + VIR_WARN("Failed to get stable path for pool '%s'", + driver->pools.objs[i]->def->name); virStoragePoolObjUnlock(driver->pools.objs[i]); - goto cleanup; + continue; } vol = virStorageVolDefFindByPath(driver->pools.objs[i], @@ -1274,7 +1274,6 @@ storageVolumeLookupByPath(virConnectPtr conn, virStorageReportError(VIR_ERR_NO_STORAGE_VOL, "%s", _("no storage vol with matching path")); -cleanup: VIR_FREE(cleanpath); storageDriverUnlock(driver); return ret; -- 1.7.6

On 09/26/2011 01:15 AM, Osier Yang wrote:
* src/storage/storage_driver.c: As virStorageVolLookupByPath lookups all the pool objs of the drivers, breaking when failing on getting the stable path of the pool will just breaks the whole lookup process, it can cause the API fails even if the vol exists indeed. It won't get any benefit. This patch is to fix it. --- src/storage/storage_driver.c | 13 ++++++------- 1 files changed, 6 insertions(+), 7 deletions(-)
ACK, you addressed my v1 comments. -- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org

于 2011年09月27日 05:14, Eric Blake 写道:
On 09/26/2011 01:15 AM, Osier Yang wrote:
* src/storage/storage_driver.c: As virStorageVolLookupByPath lookups all the pool objs of the drivers, breaking when failing on getting the stable path of the pool will just breaks the whole lookup process, it can cause the API fails even if the vol exists indeed. It won't get any benefit. This patch is to fix it. --- src/storage/storage_driver.c | 13 ++++++------- 1 files changed, 6 insertions(+), 7 deletions(-)
ACK, you addressed my v1 comments.
Thanks, pushed. Osier
participants (2)
-
Eric Blake
-
Osier Yang