[PATCH 12/14] xfs_repair: address never-true tests in repair/bmap.c on 64 bit

Mark Tinguely tinguely at sgi.com
Wed Apr 9 08:55:47 CDT 2014


On 04/08/14 18:25, Eric Sandeen wrote:
> The test "if (new_naexts > BLKMAP_NEXTS_MAX)" is never true
> on a 64-bit platform; new_naexts is an int, and BLKMAP_NEXTS_MAX
> is INT_MAX.  So just wrap the whole thing in the #ifdef.
>
> Signed-off-by: Eric Sandeen<sandeen at redhat.com>
> ---
>   repair/bmap.c |    8 ++++----
>   1 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/repair/bmap.c b/repair/bmap.c
> index 85d66dc..b81efb9 100644
> --- a/repair/bmap.c
> +++ b/repair/bmap.c
> @@ -47,16 +47,16 @@ blkmap_alloc(
>   	if (nex < 1)
>   		nex = 1;
>
> +#if (BITS_PER_LONG == 32)	/* on 64-bit platformsethis is never true */
                                              platforms this ..,
>   	if (nex > BLKMAP_NEXTS_MAX) {
> -#if (BITS_PER_LONG == 32)
>   		do_warn(
>   	_("Number of extents requested in blkmap_alloc (%d) overflows 32 bits.\n"
>   	  "If this is not a corruption, then you will need a 64 bit system\n"
>   	  "to repair this filesystem.\n"),
>   			nex);
> -#endif
>   		return NULL;
>   	}
> +#endif

Looks good. The other patches look good too.

Reviewed-by: Mark Tinguely <tinguely at sgi.com>



More information about the xfs mailing list