---
src/util/virlockspace.c | 20 ++++----------------
1 file changed, 4 insertions(+), 16 deletions(-)
diff --git a/src/util/virlockspace.c b/src/util/virlockspace.c
index 99b6182..5166bd8 100644
--- a/src/util/virlockspace.c
+++ b/src/util/virlockspace.c
@@ -223,11 +223,9 @@ virLockSpaceResourceNew(virLockSpacePtr lockspace,
}
res->lockHeld = true;
- if (VIR_EXPAND_N(res->owners, res->nOwners, 1) < 0)
+ if (VIR_APPEND_ELEMENT(res->owners, res->nOwners, &owner) < 0)
goto no_memory;
- res->owners[res->nOwners-1] = owner;
-
return res;
no_memory:
@@ -643,12 +641,10 @@ int virLockSpaceAcquireResource(virLockSpacePtr lockspace,
if ((res->flags & VIR_LOCK_SPACE_ACQUIRE_SHARED) &&
(flags & VIR_LOCK_SPACE_ACQUIRE_SHARED)) {
- if (VIR_EXPAND_N(res->owners, res->nOwners, 1) < 0) {
+ if (VIR_APPEND_ELEMENT(res->owners, res->nOwners, &owner) < 0)
{
virReportOOMError();
goto cleanup;
}
- res->owners[res->nOwners-1] = owner;
-
goto done;
}
virReportError(VIR_ERR_RESOURCE_BUSY,
@@ -707,11 +703,7 @@ int virLockSpaceReleaseResource(virLockSpacePtr lockspace,
goto cleanup;
}
- if (i < (res->nOwners - 1))
- memmove(res->owners + i,
- res->owners + i + 1,
- (res->nOwners - i - 1) * sizeof(res->owners[0]));
- VIR_SHRINK_N(res->owners, res->nOwners, 1);
+ VIR_DELETE_ELEMENT(res->owners, i, res->nOwners);
if ((res->nOwners == 0) &&
virHashRemoveEntry(lockspace->resources, resname) < 0)
@@ -753,11 +745,7 @@ virLockSpaceRemoveResourcesForOwner(const void *payload,
data->count++;
- if (i < (res->nOwners - 1))
- memmove(res->owners + i,
- res->owners + i + 1,
- (res->nOwners - i - 1) * sizeof(res->owners[0]));
- VIR_SHRINK_N(res->owners, res->nOwners, 1);
+ VIR_DELETE_ELEMENT(res->owners, i, res->nOwners);
if (res->nOwners) {
VIR_DEBUG("Other shared owners remain");
--
1.7.11.7