fsm: Move readonly check into update functions