[PATCH 16/26] dm: core: Split out alloc code into a new function