Re: [PATCH 11/15] limpathpersist: Handle changing key corner case

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2025-07-10 at 14:10 -0400, Benjamin Marzinski wrote:
> When you change the reservation key of a registered multipath device,
> some of paths might be down or even deleted since you originally

[...]
> 
> Signed-off-by: Benjamin Marzinski <bmarzins@xxxxxxxxxx>

This is not a full review, just feedback about a failing CI pipeline.

> ---
>  libmpathpersist/mpath_persist_int.c | 124 ++++++++++++++++++++------
> --
>  1 file changed, 90 insertions(+), 34 deletions(-)
> 
> diff --git a/libmpathpersist/mpath_persist_int.c
> b/libmpathpersist/mpath_persist_int.c
> index ad5a4ee7..ca972c2b 100644
> --- a/libmpathpersist/mpath_persist_int.c
> +++ b/libmpathpersist/mpath_persist_int.c
> 
> +void preempt_missing_path(struct multipath *mpp, uint8_t *key,
> uint8_t *sa_key,
> +			  int noisy)
> +{
> +	uint8_t zero[8] = {0};
> +	struct prin_resp resp = {0};

gcc 4.8 (Debian Jessie) dislikes this syntax.

> mpath_persist_int.c:272:9: error: missing braces around initializer [-Werror=missing-braces]

The same issue appears in patch 7/15 and patch 15/15.
It seems to be a gcc bug
(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53119).
So we could use #pragma to silence the warning, but I'd like to avoid
that, especially because it occurs multiple times.

I don't think we should drop Jessie support just yet.

This works:

	struct prin_resp resp = {{{0}}};

> +	int rq_scope;
> +	unsigned int rq_type;
> +	struct prout_param_descriptor paramp = {0};

Likewise, gcc 4.8 warns about this:

> mpath_persist_int.c:275:9: error: missing initializer for field 'sa_key' of 'struct prout_param_descriptor' [-Werror=missing-field-initializers]

It's not easy to find a syntax that this compiler accepts without
warning. {{0}} does _not_ work here.

The following did the trick for me:

	struct prout_param_descriptor paramp = {.sa_flags = 0};


Regards
Martin





[Index of Archives]     [DM Crypt]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Packaging]     [Fedora SELinux]     [Yosemite Discussion]     [KDE Users]     [Fedora Docs]

  Powered by Linux