]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virStorageFileGetMetadataRecurse: Shuffle around assignment of backing chain depth
authorPeter Krempa <pkrempa@redhat.com>
Mon, 17 Feb 2020 09:34:47 +0000 (10:34 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Thu, 20 Feb 2020 06:57:08 +0000 (07:57 +0100)
Move the assignment to a place where we know that the backing store is
present rather than having to check in the cleanup section.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
src/util/virstoragefile.c

index 7aeeab0739c3dfe7422e5188321c77b52f7d62e2..f8e41025883d488aca4e10d848d263ef149a615b 100644 (file)
@@ -5053,14 +5053,15 @@ virStorageFileGetMetadataRecurse(virStorageSourcePtr src,
             ret = 0;
             goto cleanup;
         }
+
+        backingStore->id = depth;
+        src->backingStore = g_steal_pointer(&backingStore);
     } else {
         /* add terminator */
-        if (!(backingStore = virStorageSourceNew()))
+        if (!(src->backingStore = virStorageSourceNew()))
             goto cleanup;
     }
 
-    src->backingStore = g_steal_pointer(&backingStore);
-
     if (src->externalDataStoreRaw) {
         g_autoptr(virStorageSource) externalDataStore = NULL;
 
@@ -5080,8 +5081,6 @@ virStorageFileGetMetadataRecurse(virStorageSourcePtr src,
     ret = 0;
 
  cleanup:
-    if (virStorageSourceHasBacking(src))
-        src->backingStore->id = depth;
     virStorageFileDeinit(src);
     return ret;
 }