xfs: Add missing braces around xfs_scrub_agfl_info initializer
diff mbox series

Message ID 1517480584-4588-1-git-send-email-geert@linux-m68k.org
State New, archived
Headers show
Series
  • xfs: Add missing braces around xfs_scrub_agfl_info initializer
Related show

Commit Message

Geert Uytterhoeven Feb. 1, 2018, 10:23 a.m. UTC
With gcc-4.1.2:

    fs/xfs/scrub/agheader.c: In function ‘xfs_scrub_agfl’:
    fs/xfs/scrub/agheader.c:770: warning: missing braces around initializer
    fs/xfs/scrub/agheader.c:770: warning: (near initialization for ‘sai.oinfo’)

The first member of struct xfs_scrub_agfl_info is no longer an integral
type, but a struct.  Add the missing curly braces to fix this.

Fixes: d852657ccfc0e455 ("xfs: cross-reference reverse-mapping btree")
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
 fs/xfs/scrub/agheader.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Arnd Bergmann Feb. 1, 2018, 11:31 a.m. UTC | #1
On Thu, Feb 1, 2018 at 11:23 AM, Geert Uytterhoeven
<geert@linux-m68k.org> wrote:
> With gcc-4.1.2:
>
>     fs/xfs/scrub/agheader.c: In function ‘xfs_scrub_agfl’:
>     fs/xfs/scrub/agheader.c:770: warning: missing braces around initializer
>     fs/xfs/scrub/agheader.c:770: warning: (near initialization for ‘sai.oinfo’)
>
> The first member of struct xfs_scrub_agfl_info is no longer an integral
> type, but a struct.  Add the missing curly braces to fix this.

I suspect gcc-4.5 is affected as well, but not 4.6+

> --- a/fs/xfs/scrub/agheader.c
> +++ b/fs/xfs/scrub/agheader.c
> @@ -767,7 +767,7 @@ int
>  xfs_scrub_agfl(
>         struct xfs_scrub_context        *sc)
>  {
> -       struct xfs_scrub_agfl_info      sai = { 0 };
> +       struct xfs_scrub_agfl_info      sai = { { 0 } };
>         struct xfs_agf                  *agf;

Looks ok to me, but

        struct xfs_scrub_agfl_info      sai = { };

might be slightly better in case the first member changes again.

     Arnd
Darrick J. Wong Feb. 1, 2018, 5:08 p.m. UTC | #2
On Thu, Feb 01, 2018 at 12:31:36PM +0100, Arnd Bergmann wrote:
> On Thu, Feb 1, 2018 at 11:23 AM, Geert Uytterhoeven
> <geert@linux-m68k.org> wrote:
> > With gcc-4.1.2:
> >
> >     fs/xfs/scrub/agheader.c: In function ‘xfs_scrub_agfl’:
> >     fs/xfs/scrub/agheader.c:770: warning: missing braces around initializer
> >     fs/xfs/scrub/agheader.c:770: warning: (near initialization for ‘sai.oinfo’)
> >
> > The first member of struct xfs_scrub_agfl_info is no longer an integral
> > type, but a struct.  Add the missing curly braces to fix this.
> 
> I suspect gcc-4.5 is affected as well, but not 4.6+
> 
> > --- a/fs/xfs/scrub/agheader.c
> > +++ b/fs/xfs/scrub/agheader.c
> > @@ -767,7 +767,7 @@ int
> >  xfs_scrub_agfl(
> >         struct xfs_scrub_context        *sc)
> >  {
> > -       struct xfs_scrub_agfl_info      sai = { 0 };
> > +       struct xfs_scrub_agfl_info      sai = { { 0 } };
> >         struct xfs_agf                  *agf;
> 
> Looks ok to me, but
> 
>         struct xfs_scrub_agfl_info      sai = { };
> 
> might be slightly better in case the first member changes again.

Frankly I'd rather see it changed to memset(&sai, 0, sizeof(sai)); and
stop having to field all these gcc warnings that vary depending on
compiler version...

--D

> 
>      Arnd
> --
> To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
Joe Perches Feb. 1, 2018, 5:24 p.m. UTC | #3
On Thu, 2018-02-01 at 09:08 -0800, Darrick J. Wong wrote:
> On Thu, Feb 01, 2018 at 12:31:36PM +0100, Arnd Bergmann wrote:
> > On Thu, Feb 1, 2018 at 11:23 AM, Geert Uytterhoeven
> > <geert@linux-m68k.org> wrote:
> > > With gcc-4.1.2:
> > > 
> > >     fs/xfs/scrub/agheader.c: In function ‘xfs_scrub_agfl’:
> > >     fs/xfs/scrub/agheader.c:770: warning: missing braces around initializer
> > >     fs/xfs/scrub/agheader.c:770: warning: (near initialization for ‘sai.oinfo’)
> > > 
> > > The first member of struct xfs_scrub_agfl_info is no longer an integral
> > > type, but a struct.  Add the missing curly braces to fix this.
> > 
> > I suspect gcc-4.5 is affected as well, but not 4.6+
> > 
> > > --- a/fs/xfs/scrub/agheader.c
> > > +++ b/fs/xfs/scrub/agheader.c
> > > @@ -767,7 +767,7 @@ int
> > >  xfs_scrub_agfl(
> > >         struct xfs_scrub_context        *sc)
> > >  {
> > > -       struct xfs_scrub_agfl_info      sai = { 0 };
> > > +       struct xfs_scrub_agfl_info      sai = { { 0 } };
> > >         struct xfs_agf                  *agf;
> > 
> > Looks ok to me, but
> > 
> >         struct xfs_scrub_agfl_info      sai = { };
> > 
> > might be slightly better in case the first member changes again.
> 
> Frankly I'd rather see it changed to memset(&sai, 0, sizeof(sai)); and
> stop having to field all these gcc warnings that vary depending on
> compiler version...

trivia:

memset should also be preferred if the structure
could be copied to userspace as the "= {}" is not
guaranteed to zero any possible padding or member
alignment holes.

Patch
diff mbox series

diff --git a/fs/xfs/scrub/agheader.c b/fs/xfs/scrub/agheader.c
index fd975524f4603387..9bcfdb0d1da379f5 100644
--- a/fs/xfs/scrub/agheader.c
+++ b/fs/xfs/scrub/agheader.c
@@ -767,7 +767,7 @@  int
 xfs_scrub_agfl(
 	struct xfs_scrub_context	*sc)
 {
-	struct xfs_scrub_agfl_info	sai = { 0 };
+	struct xfs_scrub_agfl_info	sai = { { 0 } };
 	struct xfs_agf			*agf;
 	xfs_agnumber_t			agno;
 	unsigned int			agflcount;