@@ -82,7 +82,6 @@ struct acm_provider {
/* Variables exported from core */
extern atomic_t counter[ACM_MAX_COUNTER];
-extern char *opts_file;
int provider_query(struct acm_provider **info, uint32_t *version);
@@ -117,4 +116,6 @@ acm_alloc_sa_mad(const struct acm_endpoint *endpoint, void *context,
extern void acm_free_sa_mad(struct acm_sa_mad *mad);
extern int acm_send_sa_mad(struct acm_sa_mad *mad);
+extern char * acm_get_opts_file(void);
+
#endif /* ACM_PROV_H */
@@ -2776,6 +2776,7 @@ static void acmp_set_options(void)
FILE *f;
char s[120];
char opt[32], value[256];
+ char *opts_file = acm_get_opts_file();
if (!(f = fopen(opts_file, "r")))
return;
@@ -186,7 +186,7 @@ static struct sa_data {
* Service options - may be set through ibacm_opts.cfg file.
*/
static char *acme = IBACM_BIN_PATH "/ib_acme -A";
-char *opts_file = ACM_CONF_DIR "/" ACM_OPTS_FILE;
+static char *opts_file = ACM_CONF_DIR "/" ACM_OPTS_FILE;
static char *addr_file = ACM_CONF_DIR "/" ACM_ADDR_FILE;
static char log_file[128] = "/var/log/ibacm.log";
static int log_level = 0;
@@ -256,6 +256,11 @@ int ib_any_gid(union ibv_gid *gid)
return ((gid->global.subnet_prefix | gid->global.interface_id) == 0);
}
+char * acm_get_opts_file(void)
+{
+ return opts_file;
+}
+
static struct acmc_prov_context *
acm_alloc_prov_context(struct acm_provider *prov)
{