On Fri, 2025-07-11 at 14:15 +0200, Martin Wilck wrote:
> 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 <[email protected]>
>
> 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}}};
It does, but it causes an error with Jessie's clang compiler (clang
3.5.0).
^
> mpath_persist_int.c:673:30: error: missing field 'additional_length'
> initializer [-Werror,-Wmissing-field-initializers]
> struct prin_resp resp = {{{0}}};
Both compilers seem to accept this:
struct prin_resp resp = {{{.prgeneration = 0}}};
It's getting so awkward that we might as well just use memset.
Martin