uint64_t *span,
uint64_t *weight_sum) {
+ bool try_again = false;
+
assert(context);
assert(a);
assert(span);
continue;
if (p->new_size == UINT64_MAX) {
- bool charge = false, try_again = false;
uint64_t share, rsz, xsz;
+ bool charge = false;
/* Calculate how much this space this partition needs if everyone would get
* the weight based share */
*span = charge_size(context, *span, p->new_size);
*weight_sum = charge_weight(*weight_sum, p->weight);
}
-
- if (try_again)
- return false; /* try again */
}
if (p->new_padding == UINT64_MAX) {
- bool charge = false, try_again = false;
uint64_t share, rsz, xsz;
+ bool charge = false;
share = scale_by_weight(*span, p->padding_weight, *weight_sum);
*span = charge_size(context, *span, p->new_padding);
*weight_sum = charge_weight(*weight_sum, p->padding_weight);
}
-
- if (try_again)
- return false; /* try again */
}
}
- return true; /* done */
+ return !try_again;
}
static void context_grow_partition_one(Context *context, FreeArea *a, Partition *p, uint64_t *span) {