From: Michal Privoznik Date: Wed, 6 Mar 2019 14:27:55 +0000 (+0100) Subject: iscsi_direct: Make virStorageBackendISCSIDirectGetLun report error properly X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=96e5c4177e5604ce09b74bc9f1350090306d8e40;p=libvirt.git iscsi_direct: Make virStorageBackendISCSIDirectGetLun report error properly This function reports error for one of the two error paths. This is unfortunate as a caller see this function failing but doesn't know right away if an error was reported. Signed-off-by: Michal Privoznik Reviewed-by: Pavel Hrdina --- diff --git a/src/storage/storage_backend_iscsi_direct.c b/src/storage/storage_backend_iscsi_direct.c index 786663534d..fc3b6550f7 100644 --- a/src/storage/storage_backend_iscsi_direct.c +++ b/src/storage/storage_backend_iscsi_direct.c @@ -605,22 +605,16 @@ static int virStorageBackendISCSIDirectGetLun(virStorageVolDefPtr vol, int *lun) { - const char *name = vol->name; - int ret = -1; + const char *name; - if (!STRPREFIX(name, VOL_NAME_PREFIX)) { + if (!(name = STRSKIP(vol->name, VOL_NAME_PREFIX)) || + virStrToLong_i(name, NULL, 10, lun) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, - _("Invalid volume name %s"), name); - goto cleanup; + _("Invalid volume name %s"), vol->name); + return -1; } - name += strlen(VOL_NAME_PREFIX); - if (virStrToLong_i(name, NULL, 10, lun) < 0) - goto cleanup; - - ret = 0; - cleanup: - return ret; + return 0; } static int