crm_info("Starting %s", this_subsys->command);
crm_info("Starting %s", this_subsys->name);
do_pe_control(long long action,	      enum crmd_fsa_cause cause,	      enum crmd_fsa_state cur_state,	      enum crmd_fsa_input current_input,	      fsa_data_t *msg_data){	enum crmd_fsa_input result = I_NULL;	struct crm_subsystem_s *this_subsys = pe_subsystem;	long long stop_actions = A_PE_STOP;	long long start_actions = A_PE_START;		if(action & stop_actions) {		crm_info("Stopping %s", this_subsys->command);		if(stop_subsystem(this_subsys) == FALSE) {			result = I_FAIL;					} else if(this_subsys->pid > 0) {			int lpc = CLIENT_EXIT_WAIT;			int pid_status = -1;			while(lpc-- > 0			      && this_subsys->pid > 0			      && CL_PID_EXISTS(this_subsys->pid)) {				sleep(1);				if(waitpid(this_subsys->pid,					   &pid_status, WNOHANG) > 0) {					this_subsys->pid = -1;					break;				}			}						if(this_subsys->pid != -1) {				crm_err("Proc %s is still active with pid=%d",				       this_subsys->command, this_subsys->pid);				result = I_FAIL;			} 		}		cleanup_subsystem(this_subsys);	}	if(action & start_actions) {		if(cur_state != S_STOPPING) {			crm_info("Starting %s", this_subsys->command);			if(start_subsystem(this_subsys) == FALSE) {				result = I_FAIL;				cleanup_subsystem(this_subsys);			}		} else {			crm_info("Ignoring request to start %s while shutting down",			       this_subsys->command);		}	}		return result;}