xfs
[Top] [All Lists]

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

To: xfs@xxxxxxxxxxx
Subject: [PATCH 12/13] xfs_db: Use EFSBADCRC for CRC validity indication
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Tue, 4 Mar 2014 19:51:56 +1100
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <1393923117-9559-1-git-send-email-david@xxxxxxxxxxxxx>
References: <1393923117-9559-1-git-send-email-david@xxxxxxxxxxxxx>
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
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>
---
 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));
 }
-- 
1.9.0

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