diff options
Diffstat (limited to 'fs/xfs/xfs_log_recover.c')
-rw-r--r-- | fs/xfs/xfs_log_recover.c | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 6f3f5fa37ac..966d3f97458 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c | |||
@@ -107,7 +107,8 @@ xlog_get_bp( | |||
107 | nbblks += log->l_sectBBsize; | 107 | nbblks += log->l_sectBBsize; |
108 | nbblks = round_up(nbblks, log->l_sectBBsize); | 108 | nbblks = round_up(nbblks, log->l_sectBBsize); |
109 | 109 | ||
110 | return xfs_buf_get_noaddr(BBTOB(nbblks), log->l_mp->m_logdev_targp); | 110 | return xfs_buf_get_uncached(log->l_mp->m_logdev_targp, |
111 | BBTOB(nbblks), 0); | ||
111 | } | 112 | } |
112 | 113 | ||
113 | STATIC void | 114 | STATIC void |
@@ -167,7 +168,7 @@ xlog_bread_noalign( | |||
167 | XFS_BUF_SET_TARGET(bp, log->l_mp->m_logdev_targp); | 168 | XFS_BUF_SET_TARGET(bp, log->l_mp->m_logdev_targp); |
168 | 169 | ||
169 | xfsbdstrat(log->l_mp, bp); | 170 | xfsbdstrat(log->l_mp, bp); |
170 | error = xfs_iowait(bp); | 171 | error = xfs_buf_iowait(bp); |
171 | if (error) | 172 | if (error) |
172 | xfs_ioerror_alert("xlog_bread", log->l_mp, | 173 | xfs_ioerror_alert("xlog_bread", log->l_mp, |
173 | bp, XFS_BUF_ADDR(bp)); | 174 | bp, XFS_BUF_ADDR(bp)); |
@@ -321,12 +322,13 @@ xlog_recover_iodone( | |||
321 | * this during recovery. One strike! | 322 | * this during recovery. One strike! |
322 | */ | 323 | */ |
323 | xfs_ioerror_alert("xlog_recover_iodone", | 324 | xfs_ioerror_alert("xlog_recover_iodone", |
324 | bp->b_mount, bp, XFS_BUF_ADDR(bp)); | 325 | bp->b_target->bt_mount, bp, |
325 | xfs_force_shutdown(bp->b_mount, SHUTDOWN_META_IO_ERROR); | 326 | XFS_BUF_ADDR(bp)); |
327 | xfs_force_shutdown(bp->b_target->bt_mount, | ||
328 | SHUTDOWN_META_IO_ERROR); | ||
326 | } | 329 | } |
327 | bp->b_mount = NULL; | ||
328 | XFS_BUF_CLR_IODONE_FUNC(bp); | 330 | XFS_BUF_CLR_IODONE_FUNC(bp); |
329 | xfs_biodone(bp); | 331 | xfs_buf_ioend(bp, 0); |
330 | } | 332 | } |
331 | 333 | ||
332 | /* | 334 | /* |
@@ -2275,8 +2277,7 @@ xlog_recover_do_buffer_trans( | |||
2275 | XFS_BUF_STALE(bp); | 2277 | XFS_BUF_STALE(bp); |
2276 | error = xfs_bwrite(mp, bp); | 2278 | error = xfs_bwrite(mp, bp); |
2277 | } else { | 2279 | } else { |
2278 | ASSERT(bp->b_mount == NULL || bp->b_mount == mp); | 2280 | ASSERT(bp->b_target->bt_mount == mp); |
2279 | bp->b_mount = mp; | ||
2280 | XFS_BUF_SET_IODONE_FUNC(bp, xlog_recover_iodone); | 2281 | XFS_BUF_SET_IODONE_FUNC(bp, xlog_recover_iodone); |
2281 | xfs_bdwrite(mp, bp); | 2282 | xfs_bdwrite(mp, bp); |
2282 | } | 2283 | } |
@@ -2540,8 +2541,7 @@ xlog_recover_do_inode_trans( | |||
2540 | } | 2541 | } |
2541 | 2542 | ||
2542 | write_inode_buffer: | 2543 | write_inode_buffer: |
2543 | ASSERT(bp->b_mount == NULL || bp->b_mount == mp); | 2544 | ASSERT(bp->b_target->bt_mount == mp); |
2544 | bp->b_mount = mp; | ||
2545 | XFS_BUF_SET_IODONE_FUNC(bp, xlog_recover_iodone); | 2545 | XFS_BUF_SET_IODONE_FUNC(bp, xlog_recover_iodone); |
2546 | xfs_bdwrite(mp, bp); | 2546 | xfs_bdwrite(mp, bp); |
2547 | error: | 2547 | error: |
@@ -2678,8 +2678,7 @@ xlog_recover_do_dquot_trans( | |||
2678 | memcpy(ddq, recddq, item->ri_buf[1].i_len); | 2678 | memcpy(ddq, recddq, item->ri_buf[1].i_len); |
2679 | 2679 | ||
2680 | ASSERT(dq_f->qlf_size == 2); | 2680 | ASSERT(dq_f->qlf_size == 2); |
2681 | ASSERT(bp->b_mount == NULL || bp->b_mount == mp); | 2681 | ASSERT(bp->b_target->bt_mount == mp); |
2682 | bp->b_mount = mp; | ||
2683 | XFS_BUF_SET_IODONE_FUNC(bp, xlog_recover_iodone); | 2682 | XFS_BUF_SET_IODONE_FUNC(bp, xlog_recover_iodone); |
2684 | xfs_bdwrite(mp, bp); | 2683 | xfs_bdwrite(mp, bp); |
2685 | 2684 | ||
@@ -3817,7 +3816,7 @@ xlog_do_recover( | |||
3817 | XFS_BUF_READ(bp); | 3816 | XFS_BUF_READ(bp); |
3818 | XFS_BUF_UNASYNC(bp); | 3817 | XFS_BUF_UNASYNC(bp); |
3819 | xfsbdstrat(log->l_mp, bp); | 3818 | xfsbdstrat(log->l_mp, bp); |
3820 | error = xfs_iowait(bp); | 3819 | error = xfs_buf_iowait(bp); |
3821 | if (error) { | 3820 | if (error) { |
3822 | xfs_ioerror_alert("xlog_do_recover", | 3821 | xfs_ioerror_alert("xlog_do_recover", |
3823 | log->l_mp, bp, XFS_BUF_ADDR(bp)); | 3822 | log->l_mp, bp, XFS_BUF_ADDR(bp)); |