mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 05:35:25 +00:00
util: bitmap: Use VIR_SHRINK_N in virBitmapShrink
The function only reduces the size of the bitmap thus we can use the appropriate shrinking function which also does not have any return value. Since virBitmapShrink now does not return any value callers need to be fixed as well.
This commit is contained in:
parent
bf924e8e1b
commit
e88a08e80b
@ -18453,8 +18453,7 @@ virDomainCachetuneDefParse(virDomainDefPtr def,
|
||||
|
||||
/* We need to limit the bitmap to number of vCPUs. If there's nothing left,
|
||||
* then we can just clean up and return 0 immediately */
|
||||
if (virBitmapShrink(vcpus, def->maxvcpus) < 0)
|
||||
goto cleanup;
|
||||
virBitmapShrink(vcpus, def->maxvcpus);
|
||||
|
||||
if (virBitmapIsAllClear(vcpus)) {
|
||||
ret = 0;
|
||||
|
@ -1292,15 +1292,16 @@ virBitmapSubtract(virBitmapPtr a,
|
||||
* Reduces the bitmap to size @b. Nothing will change if the size is already
|
||||
* smaller than or equal to @b.
|
||||
*/
|
||||
int
|
||||
void
|
||||
virBitmapShrink(virBitmapPtr map,
|
||||
size_t b)
|
||||
{
|
||||
size_t toremove;
|
||||
size_t nl = 0;
|
||||
size_t nb = 0;
|
||||
|
||||
if (!map)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if (map->nbits >= b)
|
||||
map->nbits = b;
|
||||
@ -1309,14 +1310,13 @@ virBitmapShrink(virBitmapPtr map,
|
||||
nb = map->nbits % VIR_BITMAP_BITS_PER_UNIT;
|
||||
map->map[nl] &= ((1UL << nb) - 1);
|
||||
|
||||
nl++;
|
||||
if (nl == map->map_len)
|
||||
return 0;
|
||||
toremove = map->map_alloc - (nl + 1);
|
||||
|
||||
if (VIR_REALLOC_N(map->map, nl) < 0)
|
||||
return -1;
|
||||
if (toremove == 0)
|
||||
return;
|
||||
|
||||
map->map_len = nl;
|
||||
map->map_alloc = nl;
|
||||
return 0;
|
||||
VIR_SHRINK_N(map->map, map->map_alloc, toremove);
|
||||
|
||||
/* length needs to be fixed as well */
|
||||
map->map_len = map->map_alloc;
|
||||
}
|
||||
|
@ -153,6 +153,6 @@ void virBitmapIntersect(virBitmapPtr a, virBitmapPtr b)
|
||||
void virBitmapSubtract(virBitmapPtr a, virBitmapPtr b)
|
||||
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
|
||||
|
||||
int virBitmapShrink(virBitmapPtr map, size_t b);
|
||||
void virBitmapShrink(virBitmapPtr map, size_t b);
|
||||
|
||||
#endif
|
||||
|
@ -952,8 +952,7 @@ virResctrlAllocParseProcessCache(virResctrlInfoPtr resctrl,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (virBitmapShrink(mask, resctrl->levels[level]->types[type]->bits) < 0)
|
||||
goto cleanup;
|
||||
virBitmapShrink(mask, resctrl->levels[level]->types[type]->bits);
|
||||
|
||||
if (virResctrlAllocUpdateMask(alloc, level, type, cache_id, mask) < 0)
|
||||
goto cleanup;
|
||||
|
@ -656,12 +656,10 @@ test12(const void *opaque ATTRIBUTE_UNUSED)
|
||||
|
||||
TEST_MAP(1024, "34,1023");
|
||||
|
||||
if (virBitmapShrink(map, 35) < 0)
|
||||
goto cleanup;
|
||||
virBitmapShrink(map, 35);
|
||||
TEST_MAP(35, "34");
|
||||
|
||||
if (virBitmapShrink(map, 34) < 0)
|
||||
goto cleanup;
|
||||
virBitmapShrink(map, 34);
|
||||
TEST_MAP(34, "");
|
||||
|
||||
ret = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user