Message ID | 1579227500-17196-7-git-send-email-bmarzins@redhat.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Delegated to: | christophe varoqui |
Headers | show |
Series | Multipath patch dump | expand |
On Thu, 2020-01-16 at 20:18 -0600, Benjamin Marzinski wrote: > There were some variables in the hwe and mpe structs that weren't > being > merged by merge_hwe() and merge_mpe(). > > Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> > --- > libmultipath/config.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/libmultipath/config.c b/libmultipath/config.c > index 20e3b8bf..85626e96 100644 > --- a/libmultipath/config.c > +++ b/libmultipath/config.c > @@ -372,6 +372,10 @@ merge_hwe (struct hwentry * dst, struct hwentry > * src) > merge_num(san_path_err_threshold); > merge_num(san_path_err_forget_rate); > merge_num(san_path_err_recovery_time); > + merge_num(marginal_path_err_sample_time); > + merge_num(marginal_path_err_rate_threshold); > + merge_num(marginal_path_err_recheck_gap_time); > + merge_num(marginal_path_double_failed_time); Hm, looking at this, I think we should not attempt to merge sets of parameters that belong together like this. The marginal_path params should only be merged if they are *all* unset in the destination. Otherwise we risk to end up with an inconsistent parameter set from two different sources. But that's not a failure of your patch, it should be done in a follow- up fix. So: Reviewed-by: Martin Wilck <mwilck@suse.com> -- dm-devel mailing list dm-devel@redhat.com https://www.redhat.com/mailman/listinfo/dm-devel
diff --git a/libmultipath/config.c b/libmultipath/config.c index 20e3b8bf..85626e96 100644 --- a/libmultipath/config.c +++ b/libmultipath/config.c @@ -372,6 +372,10 @@ merge_hwe (struct hwentry * dst, struct hwentry * src) merge_num(san_path_err_threshold); merge_num(san_path_err_forget_rate); merge_num(san_path_err_recovery_time); + merge_num(marginal_path_err_sample_time); + merge_num(marginal_path_err_rate_threshold); + merge_num(marginal_path_err_recheck_gap_time); + merge_num(marginal_path_double_failed_time); snprintf(id, sizeof(id), "%s/%s", dst->vendor, dst->product); reconcile_features_with_options(id, &dst->features, @@ -397,6 +401,7 @@ merge_mpe(struct mpentry *dst, struct mpentry *src) if (dst->prkey_source == PRKEY_SOURCE_NONE && src->prkey_source != PRKEY_SOURCE_NONE) { dst->prkey_source = src->prkey_source; + dst->sa_flags = src->sa_flags; memcpy(&dst->reservation_key, &src->reservation_key, sizeof(dst->reservation_key)); } @@ -413,6 +418,9 @@ merge_mpe(struct mpentry *dst, struct mpentry *src) merge_num(deferred_remove); merge_num(delay_watch_checks); merge_num(delay_wait_checks); + merge_num(san_path_err_threshold); + merge_num(san_path_err_forget_rate); + merge_num(san_path_err_recovery_time); merge_num(marginal_path_err_sample_time); merge_num(marginal_path_err_rate_threshold); merge_num(marginal_path_err_recheck_gap_time);
There were some variables in the hwe and mpe structs that weren't being merged by merge_hwe() and merge_mpe(). Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> --- libmultipath/config.c | 8 ++++++++ 1 file changed, 8 insertions(+)