The allocation list management in OopStorage::reduce_deferred_updates is awkwardly coded so the logic is hard to follow. It may also waste some effort, such as sometimes pushing a block on the front only to then remove and push it on the back. Restructure and simplify.