cbufp: split shared page allocation from collect