]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - fs/xfs/xfs_log_recover.c
Merge branch 'master' into csb1725
[mv-sheeva.git] / fs / xfs / xfs_log_recover.c
index 6f3f5fa37acf16cec91cf55eb36d0d7c1b20d0b2..966d3f97458c60c181a19eef2238f17e11a0ba04 100644 (file)
@@ -107,7 +107,8 @@ xlog_get_bp(
                nbblks += log->l_sectBBsize;
        nbblks = round_up(nbblks, log->l_sectBBsize);
 
-       return xfs_buf_get_noaddr(BBTOB(nbblks), log->l_mp->m_logdev_targp);
+       return xfs_buf_get_uncached(log->l_mp->m_logdev_targp,
+                                       BBTOB(nbblks), 0);
 }
 
 STATIC void
@@ -167,7 +168,7 @@ xlog_bread_noalign(
        XFS_BUF_SET_TARGET(bp, log->l_mp->m_logdev_targp);
 
        xfsbdstrat(log->l_mp, bp);
-       error = xfs_iowait(bp);
+       error = xfs_buf_iowait(bp);
        if (error)
                xfs_ioerror_alert("xlog_bread", log->l_mp,
                                  bp, XFS_BUF_ADDR(bp));
@@ -321,12 +322,13 @@ xlog_recover_iodone(
                 * this during recovery. One strike!
                 */
                xfs_ioerror_alert("xlog_recover_iodone",
-                                 bp->b_mount, bp, XFS_BUF_ADDR(bp));
-               xfs_force_shutdown(bp->b_mount, SHUTDOWN_META_IO_ERROR);
+                                       bp->b_target->bt_mount, bp,
+                                       XFS_BUF_ADDR(bp));
+               xfs_force_shutdown(bp->b_target->bt_mount,
+                                       SHUTDOWN_META_IO_ERROR);
        }
-       bp->b_mount = NULL;
        XFS_BUF_CLR_IODONE_FUNC(bp);
-       xfs_biodone(bp);
+       xfs_buf_ioend(bp, 0);
 }
 
 /*
@@ -2275,8 +2277,7 @@ xlog_recover_do_buffer_trans(
                XFS_BUF_STALE(bp);
                error = xfs_bwrite(mp, bp);
        } else {
-               ASSERT(bp->b_mount == NULL || bp->b_mount == mp);
-               bp->b_mount = mp;
+               ASSERT(bp->b_target->bt_mount == mp);
                XFS_BUF_SET_IODONE_FUNC(bp, xlog_recover_iodone);
                xfs_bdwrite(mp, bp);
        }
@@ -2540,8 +2541,7 @@ xlog_recover_do_inode_trans(
        }
 
 write_inode_buffer:
-       ASSERT(bp->b_mount == NULL || bp->b_mount == mp);
-       bp->b_mount = mp;
+       ASSERT(bp->b_target->bt_mount == mp);
        XFS_BUF_SET_IODONE_FUNC(bp, xlog_recover_iodone);
        xfs_bdwrite(mp, bp);
 error:
@@ -2678,8 +2678,7 @@ xlog_recover_do_dquot_trans(
        memcpy(ddq, recddq, item->ri_buf[1].i_len);
 
        ASSERT(dq_f->qlf_size == 2);
-       ASSERT(bp->b_mount == NULL || bp->b_mount == mp);
-       bp->b_mount = mp;
+       ASSERT(bp->b_target->bt_mount == mp);
        XFS_BUF_SET_IODONE_FUNC(bp, xlog_recover_iodone);
        xfs_bdwrite(mp, bp);
 
@@ -3817,7 +3816,7 @@ xlog_do_recover(
        XFS_BUF_READ(bp);
        XFS_BUF_UNASYNC(bp);
        xfsbdstrat(log->l_mp, bp);
-       error = xfs_iowait(bp);
+       error = xfs_buf_iowait(bp);
        if (error) {
                xfs_ioerror_alert("xlog_do_recover",
                                  log->l_mp, bp, XFS_BUF_ADDR(bp));