Because deallocate_p2frame looks for siblings to possibly merge, and because the FREELIST lock is how the allocator does synchronization, it needs to be marked used before releasing the lock.
FREELIST