Move virStorageBackendFileSystemGetPoolSource outside of the while loop
Signed-off-by: Yi Li <yili(a)winhong.com>
---
src/storage/storage_backend_fs.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/storage/storage_backend_fs.c b/src/storage/storage_backend_fs.c
index 02b8248..92516c8 100644
--- a/src/storage/storage_backend_fs.c
+++ b/src/storage/storage_backend_fs.c
@@ -258,10 +258,10 @@ virStorageBackendFileSystemIsMounted(virStoragePoolObjPtr pool)
goto cleanup;
}
- while ((getmntent_r(mtab, &ent, buf, sizeof(buf))) != NULL) {
- if (!(src = virStorageBackendFileSystemGetPoolSource(pool)))
- goto cleanup;
+ if ((src = virStorageBackendFileSystemGetPoolSource(pool)) == NULL)
+ goto cleanup;
+ while ((getmntent_r(mtab, &ent, buf, sizeof(buf))) != NULL) {
/* compare both mount destinations and sources to be sure the mounted
* FS pool is really the one we're looking for
*/
@@ -274,12 +274,13 @@ virStorageBackendFileSystemIsMounted(virStoragePoolObjPtr pool)
goto cleanup;
}
- VIR_FREE(src);
}
ret = 0;
cleanup:
+ if (src)
+ VIR_FREE(src);
VIR_FORCE_FCLOSE(mtab);
return ret;
}
--
2.7.5