xfs
[Top] [All Lists]

Re: [PATCH 2/9] xfsprogs: Fix miscellaneous warnings in libxfs

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: [PATCH 2/9] xfsprogs: Fix miscellaneous warnings in libxfs
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Sun, 17 Jan 2010 06:53:36 -0500
Cc: xfs@xxxxxxxxxxx
In-reply-to: <1263463752-5052-3-git-send-email-david@xxxxxxxxxxxxx>
References: <1263463752-5052-1-git-send-email-david@xxxxxxxxxxxxx> <1263463752-5052-3-git-send-email-david@xxxxxxxxxxxxx>
User-agent: Mutt/1.5.19 (2009-01-05)
> -/* space allocation */
> +/* space allocation - use static inlines to avoid unused var warnings */
>  #define xfs_alloc_search_busy(tp,ag,b,len)   ((void) 0)
> -#define xfs_alloc_mark_busy(tp,ag,b,len)     ((void) 0)
> +static inline void xfs_alloc_mark_busy(xfs_trans_t *tp,
> +     xfs_agnumber_t agno, xfs_agblock_t bno, xfs_extlen_t len) {}
>  #define xfs_rotorstep                                1
>  #define xfs_bmap_rtalloc(a)                  (ENOSYS)
>  #define xfs_rtpick_extent(mp,tp,len,p)               (ENOSYS)

Maybe just convert all these to inlines so that we make sure all
arguments are evaluated?

> diff --git a/libxfs/xfs_bmap.c b/libxfs/xfs_bmap.c
> index cf1123a..4cc6431 100644
> --- a/libxfs/xfs_bmap.c
> +++ b/libxfs/xfs_bmap.c
> @@ -4274,7 +4274,7 @@ xfs_bmapi(
>       xfs_fsblock_t   abno;           /* allocated block number */
>       xfs_extlen_t    alen;           /* allocated extent length */
>       xfs_fileoff_t   aoff;           /* allocated file offset */
> -     xfs_bmalloca_t  bma;            /* args for xfs_bmap_alloc */
> +     xfs_bmalloca_t  bma = { 0 };    /* args for xfs_bmap_alloc */
>       xfs_btree_cur_t *cur;           /* bmap btree cursor */
>       xfs_fileoff_t   end;            /* end of mapped file region */
>       int             eof;            /* we've hit the end of extents */

Not nice but okay..

> diff --git a/libxfs/xfs_mount.c b/libxfs/xfs_mount.c
> index 02bff42..662c8d2 100644
> --- a/libxfs/xfs_mount.c
> +++ b/libxfs/xfs_mount.c
> @@ -400,15 +400,14 @@ xfs_mod_sb(xfs_trans_t *tp, __int64_t fields)
>  
>       xfs_sb_to_disk(XFS_BUF_TO_SBP(bp), &mp->m_sb, fields);
>  
> -     /* find modified range */
> +     /* find modified range - get last first to avoid spurious warning */
> +     f = (xfs_sb_field_t)xfs_highbit64((__uint64_t)fields);
> +     ASSERT((1LL << f) & XFS_SB_MOD_BITS);
> +     last = xfs_sb_info[f + 1].offset - 1;
>  
>       f = (xfs_sb_field_t)xfs_lowbit64((__uint64_t)fields);
>       ASSERT((1LL << f) & XFS_SB_MOD_BITS);
>       first = xfs_sb_info[f].offset;
>  
> -     f = (xfs_sb_field_t)xfs_highbit64((__uint64_t)fields);
> -     ASSERT((1LL << f) & XFS_SB_MOD_BITS);
> -     last = xfs_sb_info[f + 1].offset - 1;
> -

I don't see how this can shut up a warning, but as it doesn't cause harm
I'm fine with it.  But this and the above one really need to go in via
the kernel tree first.

<Prev in Thread] Current Thread [Next in Thread>