diff mbox

libxfs: Fix a couple of sparse complaints

Message ID 20180713091831.30250-1-cmaiolino@redhat.com (mailing list archive)
State Superseded
Headers show

Commit Message

Carlos Maiolino July 13, 2018, 9:18 a.m. UTC
No significant changes, just silence a couple of sparse errors.

Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
---
 fs/xfs/libxfs/xfs_ag_resv.h | 2 +-
 fs/xfs/libxfs/xfs_ialloc.c  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Comments

Amir Goldstein July 13, 2018, 10:02 a.m. UTC | #1
On Fri, Jul 13, 2018 at 12:18 PM, Carlos Maiolino <cmaiolino@redhat.com> wrote:
> No significant changes, just silence a couple of sparse errors.
>
> Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
> ---
>  fs/xfs/libxfs/xfs_ag_resv.h | 2 +-
>  fs/xfs/libxfs/xfs_ialloc.c  | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/fs/xfs/libxfs/xfs_ag_resv.h b/fs/xfs/libxfs/xfs_ag_resv.h
> index 4619b554ee90..dc953fc84b2f 100644
> --- a/fs/xfs/libxfs/xfs_ag_resv.h
> +++ b/fs/xfs/libxfs/xfs_ag_resv.h
> @@ -28,7 +28,7 @@ xfs_ag_resv_rmapbt_alloc(
>         struct xfs_mount        *mp,
>         xfs_agnumber_t          agno)
>  {
> -       struct xfs_alloc_arg    args = {0};
> +       struct xfs_alloc_arg    args = { NULL };

Could you use args = {} instead.

There was a bunch of conversions for such initializes with:
https://lwn.net/Articles/723997/

But regardless, NULL adds no information for compiler.

Thanks,
Amir.
--
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
Darrick J. Wong July 13, 2018, 4:54 p.m. UTC | #2
On Fri, Jul 13, 2018 at 11:18:31AM +0200, Carlos Maiolino wrote:
> No significant changes, just silence a couple of sparse errors.
> 
> Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
> ---
>  fs/xfs/libxfs/xfs_ag_resv.h | 2 +-
>  fs/xfs/libxfs/xfs_ialloc.c  | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/xfs/libxfs/xfs_ag_resv.h b/fs/xfs/libxfs/xfs_ag_resv.h
> index 4619b554ee90..dc953fc84b2f 100644
> --- a/fs/xfs/libxfs/xfs_ag_resv.h
> +++ b/fs/xfs/libxfs/xfs_ag_resv.h
> @@ -28,7 +28,7 @@ xfs_ag_resv_rmapbt_alloc(
>  	struct xfs_mount	*mp,
>  	xfs_agnumber_t		agno)
>  {
> -	struct xfs_alloc_arg	args = {0};
> +	struct xfs_alloc_arg	args = { NULL };
>  	struct xfs_perag	*pag;
>  
>  	args.len = 1;
> diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c
> index 0d968e8143aa..0680fea1d47d 100644
> --- a/fs/xfs/libxfs/xfs_ialloc.c
> +++ b/fs/xfs/libxfs/xfs_ialloc.c
> @@ -2539,7 +2539,7 @@ xfs_agi_verify(
>  		return __this_address;
>  
>  	for (i = 0; i < XFS_AGI_UNLINKED_BUCKETS; i++) {
> -		if (agi->agi_unlinked[i] == NULLAGINO)
> +		if (be32_to_cpu(agi->agi_unlinked[i]) == NULLAGINO)

iirc there's enough macro magic in the kernel that
be32_to_cpu(NULLAGINO) will get encoded as a constant so we don't have
to byteswap every bucket in the agi_unlinked array.

--D

>  			continue;
>  		if (!xfs_verify_ino(mp, be32_to_cpu(agi->agi_unlinked[i])))
>  			return __this_address;
> -- 
> 2.14.3
> 
> --
> 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
--
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
Carlos Maiolino July 14, 2018, 10:09 a.m. UTC | #3
On Fri, Jul 13, 2018 at 09:54:50AM -0700, Darrick J. Wong wrote:
> On Fri, Jul 13, 2018 at 11:18:31AM +0200, Carlos Maiolino wrote:
> > No significant changes, just silence a couple of sparse errors.
> > 
> > Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
> > ---
> >  fs/xfs/libxfs/xfs_ag_resv.h | 2 +-
> >  fs/xfs/libxfs/xfs_ialloc.c  | 2 +-
> >  2 files changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/fs/xfs/libxfs/xfs_ag_resv.h b/fs/xfs/libxfs/xfs_ag_resv.h
> > index 4619b554ee90..dc953fc84b2f 100644
> > --- a/fs/xfs/libxfs/xfs_ag_resv.h
> > +++ b/fs/xfs/libxfs/xfs_ag_resv.h
> > @@ -28,7 +28,7 @@ xfs_ag_resv_rmapbt_alloc(
> >  	struct xfs_mount	*mp,
> >  	xfs_agnumber_t		agno)
> >  {
> > -	struct xfs_alloc_arg	args = {0};
> > +	struct xfs_alloc_arg	args = { NULL };
> >  	struct xfs_perag	*pag;
> >  
> >  	args.len = 1;
> > diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c
> > index 0d968e8143aa..0680fea1d47d 100644
> > --- a/fs/xfs/libxfs/xfs_ialloc.c
> > +++ b/fs/xfs/libxfs/xfs_ialloc.c
> > @@ -2539,7 +2539,7 @@ xfs_agi_verify(
> >  		return __this_address;
> >  
> >  	for (i = 0; i < XFS_AGI_UNLINKED_BUCKETS; i++) {
> > -		if (agi->agi_unlinked[i] == NULLAGINO)
> > +		if (be32_to_cpu(agi->agi_unlinked[i]) == NULLAGINO)
> 
> iirc there's enough macro magic in the kernel that
> be32_to_cpu(NULLAGINO) will get encoded as a constant so we don't have
> to byteswap every bucket in the agi_unlinked array.

Yup, you are right, just looked deeper into the be32_to_cpu() and their
relatives, and yeah, constant values can be swapped at compile time, thanks,
I'll redo it, and send a V2

> 
> --D
> 
> >  			continue;
> >  		if (!xfs_verify_ino(mp, be32_to_cpu(agi->agi_unlinked[i])))
> >  			return __this_address;
> > -- 
> > 2.14.3
> > 
> > --
> > 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
Carlos Maiolino July 14, 2018, 10:17 a.m. UTC | #4
On Fri, Jul 13, 2018 at 01:02:24PM +0300, Amir Goldstein wrote:
> On Fri, Jul 13, 2018 at 12:18 PM, Carlos Maiolino <cmaiolino@redhat.com> wrote:
> > No significant changes, just silence a couple of sparse errors.
> >
> > Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
> > ---
> >  fs/xfs/libxfs/xfs_ag_resv.h | 2 +-
> >  fs/xfs/libxfs/xfs_ialloc.c  | 2 +-
> >  2 files changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/fs/xfs/libxfs/xfs_ag_resv.h b/fs/xfs/libxfs/xfs_ag_resv.h
> > index 4619b554ee90..dc953fc84b2f 100644
> > --- a/fs/xfs/libxfs/xfs_ag_resv.h
> > +++ b/fs/xfs/libxfs/xfs_ag_resv.h
> > @@ -28,7 +28,7 @@ xfs_ag_resv_rmapbt_alloc(
> >         struct xfs_mount        *mp,
> >         xfs_agnumber_t          agno)
> >  {
> > -       struct xfs_alloc_arg    args = {0};
> > +       struct xfs_alloc_arg    args = { NULL };
> 
> Could you use args = {} instead.
> 
> There was a bunch of conversions for such initializes with:
> https://lwn.net/Articles/723997/
>

I honestly don't see a reason to use these annotations here.

> But regardless, NULL adds no information for compiler.

args = { NULL }; just looks more clear to me than

args = {};

and anyway, the idea here was just to shut up sparse complains, not to do
anything better than args = {0} or pass any extra information to the compiler.



> 
> Thanks,
> Amir.
diff mbox

Patch

diff --git a/fs/xfs/libxfs/xfs_ag_resv.h b/fs/xfs/libxfs/xfs_ag_resv.h
index 4619b554ee90..dc953fc84b2f 100644
--- a/fs/xfs/libxfs/xfs_ag_resv.h
+++ b/fs/xfs/libxfs/xfs_ag_resv.h
@@ -28,7 +28,7 @@  xfs_ag_resv_rmapbt_alloc(
 	struct xfs_mount	*mp,
 	xfs_agnumber_t		agno)
 {
-	struct xfs_alloc_arg	args = {0};
+	struct xfs_alloc_arg	args = { NULL };
 	struct xfs_perag	*pag;
 
 	args.len = 1;
diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c
index 0d968e8143aa..0680fea1d47d 100644
--- a/fs/xfs/libxfs/xfs_ialloc.c
+++ b/fs/xfs/libxfs/xfs_ialloc.c
@@ -2539,7 +2539,7 @@  xfs_agi_verify(
 		return __this_address;
 
 	for (i = 0; i < XFS_AGI_UNLINKED_BUCKETS; i++) {
-		if (agi->agi_unlinked[i] == NULLAGINO)
+		if (be32_to_cpu(agi->agi_unlinked[i]) == NULLAGINO)
 			continue;
 		if (!xfs_verify_ino(mp, be32_to_cpu(agi->agi_unlinked[i])))
 			return __this_address;