]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Move and rename qemuHotplugPrepareDiskSourceAccess
authorPeter Krempa <pkrempa@redhat.com>
Thu, 18 Apr 2019 08:04:26 +0000 (10:04 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Thu, 9 May 2019 13:55:35 +0000 (15:55 +0200)
Move it to qemu_domain.c and call it
qemuDomainStorageSourceChainAccessPrepare.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_domain.c
src/qemu/qemu_domain.h
src/qemu/qemu_hotplug.c

index 7f5264acade6572fbe41dc3ee2d3ed2c98c77b8d..5cc0802a2d751ecd8c4b7adc76118032f68ac9d5 100644 (file)
@@ -9211,6 +9211,74 @@ qemuDomainDiskGetBackendAlias(virDomainDiskDefPtr disk,
 }
 
 
+/**
+ * qemuDomainStorageSourceChainAccessPrepare:
+ * @driver: qemu driver struct
+ * @vm: domain object
+ * @src: Source to prepare
+ * @teardown: Teardown the access to @src instead of adding it to a vm
+ *
+ * Setup the locks, cgroups and security permissions on a disk source and its
+ * backing chain. If @teardown is true, then the labels and cgroups are removed
+ * instead.
+ *
+ * Returns 0 on success and -1 on error. Reports libvirt error.
+ */
+int
+qemuDomainStorageSourceChainAccessPrepare(virQEMUDriverPtr driver,
+                                          virDomainObjPtr vm,
+                                          virStorageSourcePtr src,
+                                          bool teardown)
+{
+    VIR_AUTOUNREF(virQEMUDriverConfigPtr) cfg = virQEMUDriverGetConfig(driver);
+    const char *srcstr = NULLSTR(src->path);
+    int ret = -1;
+    virErrorPtr orig_err = NULL;
+
+    /* just tear down the disk access */
+    if (teardown) {
+        virErrorPreserveLast(&orig_err);
+        ret = 0;
+        goto rollback_cgroup;
+    }
+
+    if (virDomainLockImageAttach(driver->lockManager, cfg->uri, vm, src) < 0)
+        goto cleanup;
+
+    if (qemuDomainNamespaceSetupDisk(vm, src) < 0)
+        goto rollback_lock;
+
+    if (qemuSecuritySetImageLabel(driver, vm, src, true) < 0)
+        goto rollback_namespace;
+
+    if (qemuSetupImageChainCgroup(vm, src) < 0)
+        goto rollback_label;
+
+    ret = 0;
+    goto cleanup;
+
+ rollback_cgroup:
+    if (qemuTeardownImageChainCgroup(vm, src) < 0)
+        VIR_WARN("Unable to tear down cgroup access on %s", srcstr);
+ rollback_label:
+    if (qemuSecurityRestoreImageLabel(driver, vm, src, true) < 0)
+        VIR_WARN("Unable to restore security label on %s", srcstr);
+
+ rollback_namespace:
+    if (qemuDomainNamespaceTeardownDisk(vm, src) < 0)
+        VIR_WARN("Unable to remove /dev entry for %s", srcstr);
+
+ rollback_lock:
+    if (virDomainLockImageDetach(driver->lockManager, vm, src) < 0)
+        VIR_WARN("Unable to release lock on %s", srcstr);
+
+ cleanup:
+    virErrorRestore(&orig_err);
+
+    return ret;
+}
+
+
 /**
  * qemuDomainStorageSourceAccessRevoke:
  *
index 9a48b5b69dcdc991d633e813bb11117906ffac39..65b0e8c39d44f96c58d36e114ec14a108568a51a 100644 (file)
@@ -770,6 +770,11 @@ int qemuDomainDiskGetBackendAlias(virDomainDiskDefPtr disk,
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2)
     ATTRIBUTE_NONNULL(3) ATTRIBUTE_RETURN_CHECK;
 
+int qemuDomainStorageSourceChainAccessPrepare(virQEMUDriverPtr driver,
+                                              virDomainObjPtr vm,
+                                              virStorageSourcePtr src,
+                                              bool teardown);
+
 void qemuDomainStorageSourceAccessRevoke(virQEMUDriverPtr driver,
                                          virDomainObjPtr vm,
                                          virStorageSourcePtr elem);
index f3c5f44a23cba839e723e89d4ce5010241506180..736eb71d7b3cc09ac26cb6696003ee322e8020ee 100644 (file)
@@ -132,74 +132,6 @@ qemuDomainDeleteDevice(virDomainObjPtr vm,
 }
 
 
-/**
- * qemuHotplugPrepareDiskSourceAccess:
- * @driver: qemu driver struct
- * @vm: domain object
- * @src: Source to prepare
- * @teardown: Teardown the access to @src instead of adding it to a vm
- *
- * Setup the locks, cgroups and security permissions on a disk source and its
- * backing chain. If @teardown is true, then the labels and cgroups are removed
- * instead.
- *
- * Returns 0 on success and -1 on error. Reports libvirt error.
- */
-static int
-qemuHotplugPrepareDiskSourceAccess(virQEMUDriverPtr driver,
-                                   virDomainObjPtr vm,
-                                   virStorageSourcePtr src,
-                                   bool teardown)
-{
-    VIR_AUTOUNREF(virQEMUDriverConfigPtr) cfg = virQEMUDriverGetConfig(driver);
-    const char *srcstr = NULLSTR(src->path);
-    int ret = -1;
-    virErrorPtr orig_err = NULL;
-
-    /* just tear down the disk access */
-    if (teardown) {
-        virErrorPreserveLast(&orig_err);
-        ret = 0;
-        goto rollback_cgroup;
-    }
-
-    if (virDomainLockImageAttach(driver->lockManager, cfg->uri, vm, src) < 0)
-        goto cleanup;
-
-    if (qemuDomainNamespaceSetupDisk(vm, src) < 0)
-        goto rollback_lock;
-
-    if (qemuSecuritySetImageLabel(driver, vm, src, true) < 0)
-        goto rollback_namespace;
-
-    if (qemuSetupImageChainCgroup(vm, src) < 0)
-        goto rollback_label;
-
-    ret = 0;
-    goto cleanup;
-
- rollback_cgroup:
-    if (qemuTeardownImageChainCgroup(vm, src) < 0)
-        VIR_WARN("Unable to tear down cgroup access on %s", srcstr);
- rollback_label:
-    if (qemuSecurityRestoreImageLabel(driver, vm, src, true) < 0)
-        VIR_WARN("Unable to restore security label on %s", srcstr);
-
- rollback_namespace:
-    if (qemuDomainNamespaceTeardownDisk(vm, src) < 0)
-        VIR_WARN("Unable to remove /dev entry for %s", srcstr);
-
- rollback_lock:
-    if (virDomainLockImageDetach(driver->lockManager, vm, src) < 0)
-        VIR_WARN("Unable to release lock on %s", srcstr);
-
- cleanup:
-    virErrorRestore(&orig_err);
-
-    return ret;
-}
-
-
 static int
 qemuDomainAttachZPCIDevice(qemuMonitorPtr mon,
                            virDomainDeviceInfoPtr info)
@@ -877,7 +809,7 @@ qemuDomainChangeEjectableMedia(virQEMUDriverPtr driver,
     if (qemuDomainPrepareDiskSource(disk, priv, cfg) < 0)
         goto cleanup;
 
-    if (qemuHotplugPrepareDiskSourceAccess(driver, vm, newsrc, false) < 0)
+    if (qemuDomainStorageSourceChainAccessPrepare(driver, vm, newsrc, false) < 0)
         goto cleanup;
 
     if (qemuHotplugAttachManagedPR(driver, vm, newsrc, QEMU_ASYNC_JOB_NONE) < 0)
@@ -896,7 +828,7 @@ qemuDomainChangeEjectableMedia(virQEMUDriverPtr driver,
     /* remove the old source from shared device list */
     disk->src = oldsrc;
     ignore_value(qemuRemoveSharedDisk(driver, disk, vm->def->name));
-    ignore_value(qemuHotplugPrepareDiskSourceAccess(driver, vm, oldsrc, true));
+    ignore_value(qemuDomainStorageSourceChainAccessPrepare(driver, vm, oldsrc, true));
 
     /* media was changed, so we can remove the old media definition now */
     virObjectUnref(oldsrc);
@@ -911,7 +843,7 @@ qemuDomainChangeEjectableMedia(virQEMUDriverPtr driver,
         if (sharedAdded)
             ignore_value(qemuRemoveSharedDisk(driver, disk, vm->def->name));
 
-        ignore_value(qemuHotplugPrepareDiskSourceAccess(driver, vm, newsrc, true));
+        ignore_value(qemuDomainStorageSourceChainAccessPrepare(driver, vm, newsrc, true));
     }
 
     /* remove PR manager object if unneeded */
@@ -941,7 +873,7 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver,
     char *devstr = NULL;
     VIR_AUTOUNREF(virQEMUDriverConfigPtr) cfg = virQEMUDriverGetConfig(driver);
 
-    if (qemuHotplugPrepareDiskSourceAccess(driver, vm, disk->src, false) < 0)
+    if (qemuDomainStorageSourceChainAccessPrepare(driver, vm, disk->src, false) < 0)
         goto cleanup;
 
     if (qemuAssignDeviceDiskAlias(vm->def, disk, priv->qemuCaps) < 0)
@@ -1003,7 +935,7 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver,
     virDomainAuditDisk(vm, NULL, disk->src, "attach", false);
 
  error:
-    ignore_value(qemuHotplugPrepareDiskSourceAccess(driver, vm, disk->src, true));
+    ignore_value(qemuDomainStorageSourceChainAccessPrepare(driver, vm, disk->src, true));
     goto cleanup;
 }
 
@@ -4544,7 +4476,7 @@ qemuDomainRemoveDiskDevice(virQEMUDriverPtr driver,
     qemuDomainReleaseDeviceAddress(vm, &disk->info);
 
     /* tear down disk security access */
-    qemuHotplugPrepareDiskSourceAccess(driver, vm, disk->src, true);
+    qemuDomainStorageSourceChainAccessPrepare(driver, vm, disk->src, true);
 
     dev.type = VIR_DOMAIN_DEVICE_DISK;
     dev.data.disk = disk;