xfs
[Top] [All Lists]

Re: [PATCH 2/2] xfsdump: fix DEBUGPARTIALS build

To: xfs@xxxxxxxxxxx
Subject: Re: [PATCH 2/2] xfsdump: fix DEBUGPARTIALS build
From: Carlos Maiolino <cmaiolino@xxxxxxxxxx>
Date: Thu, 10 Oct 2013 11:21:20 -0300
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <525487CD.7080900@xxxxxxxxxxx>
Mail-followup-to: xfs@xxxxxxxxxxx
References: <525480A6.3000202@xxxxxxxxxx> <525487CD.7080900@xxxxxxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
Looks good to me indeed

Reviewed-by: Carlos Maiolino <cmaiolino@xxxxxxxxxx>
On Tue, Oct 08, 2013 at 05:31:41PM -0500, Eric Sandeen wrote:
> the DEBUGPARTIALS debug code might have been helpful
> in this saga, so get it building again.
> 
> The primary build failure is that STREAM_MAX isn't
> defined for the num_partials[STREAM_MAX] array;
> the loop which uses that array iterates "drivecnt"
> times, so just allocate an array of that size.
> 
> Fix a few printf format warnings while we're at it.
> 
> Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx>
> ---
> 
> diff --git a/restore/content.c b/restore/content.c
> index cc49336..8ad0f00 100644
> --- a/restore/content.c
> +++ b/restore/content.c
> @@ -8857,22 +8857,23 @@ dump_partials(void)
>       int i;
>  
>       pi_lock();
> -     printf("\npartial_reg: count=%d\n", persp->a.parrestcnt);
> +     printf("\npartial_reg: count=%d\n", (int)persp->a.parrestcnt);
>       if (persp->a.parrestcnt > 0) {
>               for (i=0; i < partialmax; i++ ) {
>                       if (persp->a.parrest[i].is_ino > 0) {
>                               int j;
>  
>                               isptr = &persp->a.parrest[i];
> -                             printf( "\tino=%lld ", isptr->is_ino);
> +                             printf("\tino=%llu ",
> +                                    (unsigned long long)isptr->is_ino);
>                               for (j=0, bsptr=isptr->is_bs;
>                                    j < drivecnt; 
>                                    j++, bsptr++)
>                               {
>                                       if (bsptr->endoffset > 0) {
>                                               printf("%d:%lld-%lld ",
> -                                                  j, bsptr->offset, 
> -                                                  bsptr->endoffset);
> +                                                j, (long long)bsptr->offset,
> +                                                (long long)bsptr->endoffset);
>                                       } 
>                               }
>                               printf( "\n");
> @@ -8892,13 +8893,17 @@ dump_partials(void)
>  void
>  check_valid_partials(void)
>  {
> -        int num_partials[STREAM_MAX]; /* sum of partials for a given drive */
> +     int *num_partials; /* array for sum of partials for a given drive */
>       partial_rest_t *isptr = NULL;
>       bytespan_t *bsptr = NULL;
>       int i;
>  
>       /* zero the sums for each stream */
> -        memset(num_partials, 0, sizeof(num_partials));
> +     num_partials = calloc(drivecnt, sizeof(int));
> +     if (!num_partials) {
> +             perror("num_partials array allocation");
> +             return;
> +     }
>  
>       pi_lock();
>       if (persp->a.parrestcnt > 0) {
> @@ -8926,6 +8931,7 @@ check_valid_partials(void)
>               }
>       }
>       pi_unlock();
> +     free(num_partials);
>  }
>  #endif
>  
> 
> 
> _______________________________________________
> xfs mailing list
> xfs@xxxxxxxxxxx
> http://oss.sgi.com/mailman/listinfo/xfs

-- 
Carlos

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