Factor out the alloc part of fellow_busy_region_alloc()

parent a3b77636
......@@ -2165,6 +2165,23 @@ fellow_busy_obj_alloc(struct fellow_cache *fc,
return (FCR_OK(fbo));
}
/* this exists to wrap FC_INJ code */
static struct buddy_off_extent
fellow_region_alloc(const struct fellow_cache *fc, size_t size, int8_t cram)
{
CHECK_OBJ_NOTNULL(fc, FELLOW_CACHE_MAGIC);
AN(size);
if (cram)
FC_INJ_SZLIM(size);
return (FC_INJ ? buddy_off_extent_nil :
buddy_alloc1_off_extent_wait(fellow_dskbuddy(fc->ffd),
FEP_SPC, size, cram));
}
/* allocate a new region for body, aux attr or seglist
*
* aux attr use: We do not yet coalesce allocations because
......@@ -2175,21 +2192,10 @@ static struct buddy_off_extent *
fellow_busy_region_alloc(struct fellow_busy *fbo, size_t size, int8_t cram)
{
struct buddy_off_extent *fdr, reg;
struct fellow_cache *fc;
CHECK_OBJ_NOTNULL(fbo, FELLOW_BUSY_MAGIC);
AN(size);
fc = fbo->fc;
CHECK_OBJ_NOTNULL(fc, FELLOW_CACHE_MAGIC);
if (cram)
FC_INJ_SZLIM(size);
reg = FC_INJ ? buddy_off_extent_nil :
buddy_alloc1_off_extent_wait(fellow_dskbuddy(fc->ffd),
FEP_SPC, size, cram);
reg = fellow_region_alloc(fbo->fc, size, cram);
if (reg.off < 0) {
return (NULL);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment