futex: split out atomic logic from futex_lock_pi()