|
@@ -1022,7 +1022,9 @@ xfs_buf_iodone_work(
|
|
bool read = !!(bp->b_flags & XBF_READ);
|
|
bool read = !!(bp->b_flags & XBF_READ);
|
|
|
|
|
|
bp->b_flags &= ~(XBF_READ | XBF_WRITE | XBF_READ_AHEAD);
|
|
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);
|
|
bp->b_ops->verify_read(bp);
|
|
|
|
|
|
if (bp->b_iodone)
|
|
if (bp->b_iodone)
|