diff options
Diffstat (limited to 'fs/xfs/xfs_trans_buf.c')
-rw-r--r-- | fs/xfs/xfs_trans_buf.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/fs/xfs/xfs_trans_buf.c b/fs/xfs/xfs_trans_buf.c index 4e5c010f5040..cb0c5839154b 100644 --- a/fs/xfs/xfs_trans_buf.c +++ b/fs/xfs/xfs_trans_buf.c | |||
@@ -354,17 +354,15 @@ xfs_trans_read_buf( | |||
354 | ASSERT(!XFS_BUF_ISASYNC(bp)); | 354 | ASSERT(!XFS_BUF_ISASYNC(bp)); |
355 | XFS_BUF_READ(bp); | 355 | XFS_BUF_READ(bp); |
356 | xfsbdstrat(tp->t_mountp, bp); | 356 | xfsbdstrat(tp->t_mountp, bp); |
357 | xfs_iowait(bp); | 357 | error = xfs_iowait(bp); |
358 | if (XFS_BUF_GETERROR(bp) != 0) { | 358 | if (error) { |
359 | xfs_ioerror_alert("xfs_trans_read_buf", mp, | 359 | xfs_ioerror_alert("xfs_trans_read_buf", mp, |
360 | bp, blkno); | 360 | bp, blkno); |
361 | error = XFS_BUF_GETERROR(bp); | ||
362 | xfs_buf_relse(bp); | 361 | xfs_buf_relse(bp); |
363 | /* | 362 | /* |
364 | * We can gracefully recover from most | 363 | * We can gracefully recover from most read |
365 | * read errors. Ones we can't are those | 364 | * errors. Ones we can't are those that happen |
366 | * that happen after the transaction's | 365 | * after the transaction's already dirty. |
367 | * already dirty. | ||
368 | */ | 366 | */ |
369 | if (tp->t_flags & XFS_TRANS_DIRTY) | 367 | if (tp->t_flags & XFS_TRANS_DIRTY) |
370 | xfs_force_shutdown(tp->t_mountp, | 368 | xfs_force_shutdown(tp->t_mountp, |