on memory shortage. Instead, use the same wait/nowait condition with the item requested, and just cleanup and return failure if we can't allocate page header while we aren't allowed to wait.