xfs
[Top] [All Lists]

Re: [PATCH 12/13] xfs_db: Use EFSBADCRC for CRC validity indication

To: Dave Chinner <david@xxxxxxxxxxxxx>, xfs@xxxxxxxxxxx
Subject: Re: [PATCH 12/13] xfs_db: Use EFSBADCRC for CRC validity indication
From: Eric Sandeen <sandeen@xxxxxxxxxxx>
Date: Tue, 04 Mar 2014 18:12:33 -0600
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <1393923117-9559-13-git-send-email-david@xxxxxxxxxxxxx>
References: <1393923117-9559-1-git-send-email-david@xxxxxxxxxxxxx> <1393923117-9559-13-git-send-email-david@xxxxxxxxxxxxx>
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.3.0
On 3/4/14, 2:51 AM, Dave Chinner wrote:
> From: Dave Chinner <dchinner@xxxxxxxxxx>
> 
> xfs_db currently gives indication as to whether a buffer CRC is ok
> or not. Currently it does this by checking for EFSCORRUPTED in the
> b_error field of the buffer. Not that we have EFSBADCRC to indicate

Now that...

> a bad CRC independently of structure corruption, use that instead to
> drive the CRC correct/incorrect indication in the structured output.
> 
> Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>

Reviewed-by: Eric Sandeen <sandeen@xxxxxxxxxx>

> ---
>  db/io.c | 5 +++--
>  db/io.h | 2 +-
>  2 files changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/db/io.c b/db/io.c
> index d29816c..9a787c8 100644
> --- a/db/io.c
> +++ b/db/io.c
> @@ -521,10 +521,11 @@ set_cur(
>       }
>  
>       /*
> -      * keep the buffer even if the verifier says it is corrupted.
> +      * Keep the buffer even if the verifier says it is corrupted.
>        * We're a diagnostic tool, after all.
>        */
> -     if (!bp || (bp->b_error && bp->b_error != EFSCORRUPTED))
> +     if (!bp || (bp->b_error && bp->b_error != EFSCORRUPTED &&
> +                                bp->b_error != EFSBADCRC))
>               return;
>       iocur_top->buf = bp->b_addr;
>       iocur_top->bp = bp;
> diff --git a/db/io.h b/db/io.h
> index d8cf383..ad39bee 100644
> --- a/db/io.h
> +++ b/db/io.h
> @@ -67,6 +67,6 @@ static inline bool
>  iocur_crc_valid()
>  {
>       return (iocur_top->bp &&
> -             iocur_top->bp->b_error != EFSCORRUPTED &&
> +             iocur_top->bp->b_error != EFSBADCRC &&
>               (!iocur_top->ino_buf || iocur_top->ino_crc_ok));
>  }
> 

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