]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
storage: return -1 when fs pool can't be mounted
authorJán Tomko <jtomko@redhat.com>
Thu, 11 Jul 2013 10:36:59 +0000 (12:36 +0200)
committerJán Tomko <jtomko@redhat.com>
Thu, 11 Jul 2013 12:33:44 +0000 (14:33 +0200)
Don't reuse the return value of virStorageBackendFileSystemIsMounted.
If it's 0, we'd return it even if the mount command failed.

Also, don't report another error if it's -1, since one has already
been reported.

Introduced by 258e06c.

https://bugzilla.redhat.com/show_bug.cgi?id=981251
(cherry picked from commit 13fde7ceab556804dc6cfb3e56938fb948ffe83d)

src/storage/storage_backend_fs.c

index 483fd6dd8f4ce9b132205eaff1456a7b55b90398..2356cffb33eb0bbf8d5cb94349189137e8ac8f6e 100644 (file)
@@ -352,6 +352,7 @@ virStorageBackendFileSystemMount(virStoragePoolObjPtr pool) {
                       pool->def->source.format == VIR_STORAGE_POOL_NETFS_GLUSTERFS);
     virCommandPtr cmd = NULL;
     int ret = -1;
+    int rc;
 
     if (pool->def->type == VIR_STORAGE_POOL_NETFS) {
         if (pool->def->source.nhost != 1) {
@@ -378,10 +379,12 @@ virStorageBackendFileSystemMount(virStoragePoolObjPtr pool) {
     }
 
     /* Short-circuit if already mounted */
-    if ((ret = virStorageBackendFileSystemIsMounted(pool)) != 0) {
-        virReportError(VIR_ERR_OPERATION_INVALID,
-                       _("Target '%s' is already mounted"),
-                       pool->def->target.path);
+    if ((rc = virStorageBackendFileSystemIsMounted(pool)) != 0) {
+        if (rc == 1) {
+            virReportError(VIR_ERR_OPERATION_INVALID,
+                           _("Target '%s' is already mounted"),
+                           pool->def->target.path);
+        }
         return -1;
     }