|
@@ -275,6 +275,10 @@ xfs_trans_read_buf_map(
|
|
XFS_BUF_UNDONE(bp);
|
|
XFS_BUF_UNDONE(bp);
|
|
xfs_buf_stale(bp);
|
|
xfs_buf_stale(bp);
|
|
xfs_buf_relse(bp);
|
|
xfs_buf_relse(bp);
|
|
|
|
+
|
|
|
|
+ /* bad CRC means corrupted metadata */
|
|
|
|
+ if (error == EFSBADCRC)
|
|
|
|
+ error = EFSCORRUPTED;
|
|
return error;
|
|
return error;
|
|
}
|
|
}
|
|
#ifdef DEBUG
|
|
#ifdef DEBUG
|
|
@@ -338,6 +342,9 @@ xfs_trans_read_buf_map(
|
|
if (tp->t_flags & XFS_TRANS_DIRTY)
|
|
if (tp->t_flags & XFS_TRANS_DIRTY)
|
|
xfs_force_shutdown(tp->t_mountp,
|
|
xfs_force_shutdown(tp->t_mountp,
|
|
SHUTDOWN_META_IO_ERROR);
|
|
SHUTDOWN_META_IO_ERROR);
|
|
|
|
+ /* bad CRC means corrupted metadata */
|
|
|
|
+ if (error == EFSBADCRC)
|
|
|
|
+ error = EFSCORRUPTED;
|
|
return error;
|
|
return error;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -375,6 +382,10 @@ xfs_trans_read_buf_map(
|
|
if (tp->t_flags & XFS_TRANS_DIRTY)
|
|
if (tp->t_flags & XFS_TRANS_DIRTY)
|
|
xfs_force_shutdown(tp->t_mountp, SHUTDOWN_META_IO_ERROR);
|
|
xfs_force_shutdown(tp->t_mountp, SHUTDOWN_META_IO_ERROR);
|
|
xfs_buf_relse(bp);
|
|
xfs_buf_relse(bp);
|
|
|
|
+
|
|
|
|
+ /* bad CRC means corrupted metadata */
|
|
|
|
+ if (error == EFSBADCRC)
|
|
|
|
+ error = EFSCORRUPTED;
|
|
return error;
|
|
return error;
|
|
}
|
|
}
|
|
#ifdef DEBUG
|
|
#ifdef DEBUG
|