xfs
[Top] [All Lists]

[PATCH] xfs: don't verify buffers after IO errors

To: xfs@xxxxxxxxxxx
Subject: [PATCH] xfs: don't verify buffers after IO errors
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Wed, 27 Feb 2013 13:25:54 +1100
Delivered-to: xfs@xxxxxxxxxxx
From: Dave Chinner <dchinner@xxxxxxxxxx>

When we read a buffer, we might get an error from the underlying
block device and not the real data. Hence if we get an IO error, we
shouldn't run the verifier but instead just pass the IO error
straight through.

Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
---
 fs/xfs/xfs_buf.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/fs/xfs/xfs_buf.c b/fs/xfs/xfs_buf.c
index 4e8f0df..50eb603 100644
--- a/fs/xfs/xfs_buf.c
+++ b/fs/xfs/xfs_buf.c
@@ -1022,7 +1022,9 @@ xfs_buf_iodone_work(
        bool                    read = !!(bp->b_flags & XBF_READ);
 
        bp->b_flags &= ~(XBF_READ | XBF_WRITE | XBF_READ_AHEAD);
-       if (read && bp->b_ops)
+
+       /* only validate buffers that were read without errors */
+       if (read && bp->b_ops && !bp->b_error && (bp->b_flags & XBF_DONE))
                bp->b_ops->verify_read(bp);
 
        if (bp->b_iodone)
-- 
1.7.10

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