diff options
Diffstat (limited to 'libmultipath/config.c')
-rw-r--r-- | libmultipath/config.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/libmultipath/config.c b/libmultipath/config.c index fbe2125..a4178be 100644 --- a/libmultipath/config.c +++ b/libmultipath/config.c @@ -155,6 +155,9 @@ free_hwe (struct hwentry * hwe) if (hwe->prio_name) FREE(hwe->prio_name); + if (hwe->prio_args) + FREE(hwe->prio_args); + if (hwe->bl_product) FREE(hwe->bl_product); @@ -278,6 +281,7 @@ merge_hwe (struct hwentry * hwe1, struct hwentry * hwe2) merge_str(selector); merge_str(checker_name); merge_str(prio_name); + merge_str(prio_args); merge_str(bl_product); merge_num(pgpolicy); merge_num(pgfailback); @@ -322,10 +326,13 @@ store_hwe (vector hwtable, struct hwentry * dhwe) if (dhwe->checker_name && !(hwe->checker_name = set_param_str(dhwe->checker_name))) goto out; - + if (dhwe->prio_name && !(hwe->prio_name = set_param_str(dhwe->prio_name))) goto out; - + + if (dhwe->prio_args && !(hwe->prio_args = set_param_str(dhwe->prio_args))) + goto out; + hwe->pgpolicy = dhwe->pgpolicy; hwe->pgfailback = dhwe->pgfailback; hwe->rr_weight = dhwe->rr_weight; @@ -402,6 +409,9 @@ free_config (struct config * conf) if (conf->prio_name) FREE(conf->prio_name); + if (conf->prio_args) + FREE(conf->prio_args); + if (conf->checker_name) FREE(conf->checker_name); |