/* Fork a child and execute the RA */ *call_key = fork_and_execra(ra_name, op, params_argv, env_params, need_metadata); 
ra_dirname = g_string_new(ra_name); ra_name_dup = strndup(ra_name, RA_MAX_DIRNAME_LENGTH); base_name = basename(ra_name_dup); /* * If ra_name only contains basename, then append RA_PATH. * If ra_name is a pathname, then don't deal with it. */ if ( strncmp(ra_name, base_name, RA_MAX_BASENAME_LENGTH) == 0 ) { g_string_insert(ra_dirname, 0, RA_PATH); } free(ra_name_dup); 
execra( const char * ra_name, const char * op, GHashTable * cmd_params,	GHashTable * env_params, gboolean need_metadata, int * call_key){        RA_ARGV params_argv;	cl_log(LOG_DEBUG, "To execute a RA %s.", ra_name);	/* Prepare the call parameter */	if (0 > prepare_cmd_parameters(ra_name, op, cmd_params, params_argv)) {		cl_log(LOG_ERR, "HB RA: Error of preparing parameters");		return -1;	}	/* Fork a child and execute the RA */	*call_key = fork_and_execra(ra_name, op, params_argv, 					env_params, need_metadata);	if (*call_key <= 0) {		return -1;	}	else {		return 0;  /* return ok */	}}
8182	/local/tlutelli/issta_data/temp/c/2005_temp/2005/8182/fadd5d565fa143560cdbdb5c0878f2ae2cd84875/raexechb.c/clean/lib/plugins/lrm/raexechb.c