提交 efe4e210 编写于 作者: S Soren Hansen 提交者: Matthias Bolte

Rename qemudShrinkDisks to virDomainDiskRemove and move to domain_conf.c

Other drivers will need this same functionality, so move it to up to
conf/domain_conf.c and give it a more general name.
Signed-off-by: NSoren Hansen <soren@linux2go.dk>
上级 e9406e9e
...@@ -4064,6 +4064,24 @@ void virDomainDiskInsertPreAlloced(virDomainDefPtr def, ...@@ -4064,6 +4064,24 @@ void virDomainDiskInsertPreAlloced(virDomainDefPtr def,
} }
void virDomainDiskRemove(virDomainDefPtr def, size_t i)
{
if (def->ndisks > 1) {
memmove(def->disks + i,
def->disks + i + 1,
sizeof(*def->disks) *
(def->ndisks - (i + 1)));
def->ndisks--;
if (VIR_REALLOC_N(def->disks, def->ndisks) < 0) {
/* ignore, harmless */
}
} else {
VIR_FREE(def->disks);
def->ndisks = 0;
}
}
int virDomainControllerInsert(virDomainDefPtr def, int virDomainControllerInsert(virDomainDefPtr def,
virDomainControllerDefPtr controller) virDomainControllerDefPtr controller)
{ {
......
...@@ -1067,6 +1067,8 @@ void virDomainDiskInsertPreAlloced(virDomainDefPtr def, ...@@ -1067,6 +1067,8 @@ void virDomainDiskInsertPreAlloced(virDomainDefPtr def,
virDomainDiskDefPtr disk); virDomainDiskDefPtr disk);
int virDomainDiskDefAssignAddress(virCapsPtr caps, virDomainDiskDefPtr def); int virDomainDiskDefAssignAddress(virCapsPtr caps, virDomainDiskDefPtr def);
void virDomainDiskRemove(virDomainDefPtr def, size_t i);
int virDomainControllerInsert(virDomainDefPtr def, int virDomainControllerInsert(virDomainDefPtr def,
virDomainControllerDefPtr controller); virDomainControllerDefPtr controller);
void virDomainControllerInsertPreAlloced(virDomainDefPtr def, void virDomainControllerInsertPreAlloced(virDomainDefPtr def,
......
...@@ -144,6 +144,7 @@ virDomainDiskDefFree; ...@@ -144,6 +144,7 @@ virDomainDiskDefFree;
virDomainDiskDeviceTypeToString; virDomainDiskDeviceTypeToString;
virDomainDiskInsert; virDomainDiskInsert;
virDomainDiskInsertPreAlloced; virDomainDiskInsertPreAlloced;
virDomainDiskRemove;
virDomainDiskDefAssignAddress; virDomainDiskDefAssignAddress;
virDomainControllerInsert; virDomainControllerInsert;
virDomainControllerInsertPreAlloced; virDomainControllerInsertPreAlloced;
......
...@@ -8583,22 +8583,6 @@ static inline int qemudFindDisk(virDomainDefPtr def, const char *dst) ...@@ -8583,22 +8583,6 @@ static inline int qemudFindDisk(virDomainDefPtr def, const char *dst)
return -1; return -1;
} }
static inline void qemudShrinkDisks(virDomainDefPtr def, size_t i)
{
if (def->ndisks > 1) {
memmove(def->disks + i,
def->disks + i + 1,
sizeof(*def->disks) *
(def->ndisks - (i + 1)));
def->ndisks--;
if (VIR_REALLOC_N(def->disks, def->ndisks) < 0) {
/* ignore, harmless */
}
} else {
VIR_FREE(def->disks);
def->ndisks = 0;
}
}
static int qemudDomainDetachPciDiskDevice(struct qemud_driver *driver, static int qemudDomainDetachPciDiskDevice(struct qemud_driver *driver,
virDomainObjPtr vm, virDomainObjPtr vm,
...@@ -8655,7 +8639,7 @@ static int qemudDomainDetachPciDiskDevice(struct qemud_driver *driver, ...@@ -8655,7 +8639,7 @@ static int qemudDomainDetachPciDiskDevice(struct qemud_driver *driver,
qemuDomainPCIAddressReleaseAddr(priv->pciaddrs, &detach->info) < 0) qemuDomainPCIAddressReleaseAddr(priv->pciaddrs, &detach->info) < 0)
VIR_WARN("Unable to release PCI address on %s", dev->data.disk->src); VIR_WARN("Unable to release PCI address on %s", dev->data.disk->src);
qemudShrinkDisks(vm->def, i); virDomainDiskRemove(vm->def, i);
virDomainDiskDefFree(detach); virDomainDiskDefFree(detach);
...@@ -8719,7 +8703,7 @@ static int qemudDomainDetachSCSIDiskDevice(struct qemud_driver *driver, ...@@ -8719,7 +8703,7 @@ static int qemudDomainDetachSCSIDiskDevice(struct qemud_driver *driver,
} }
qemuDomainObjExitMonitorWithDriver(driver, vm); qemuDomainObjExitMonitorWithDriver(driver, vm);
qemudShrinkDisks(vm->def, i); virDomainDiskRemove(vm->def, i);
virDomainDiskDefFree(detach); virDomainDiskDefFree(detach);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册