Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs
[pandora-kernel.git] / fs / xfs / xfs_log.c
index 33f718f..cee4ab9 100644 (file)
@@ -916,19 +916,6 @@ xlog_iodone(xfs_buf_t *bp)
        aborted = 0;
        l = iclog->ic_log;
 
-       /*
-        * If the _XFS_BARRIER_FAILED flag was set by a lower
-        * layer, it means the underlying device no longer supports
-        * barrier I/O. Warn loudly and turn off barriers.
-        */
-       if (bp->b_flags & _XFS_BARRIER_FAILED) {
-               bp->b_flags &= ~_XFS_BARRIER_FAILED;
-               l->l_mp->m_flags &= ~XFS_MOUNT_BARRIER;
-               xfs_fs_cmn_err(CE_WARN, l->l_mp,
-                               "xlog_iodone: Barriers are no longer supported"
-                               " by device. Disabling barriers\n");
-       }
-
        /*
         * Race to shutdown the filesystem if we see an error.
         */
@@ -1131,7 +1118,8 @@ xlog_alloc_log(xfs_mount_t        *mp,
                iclog->ic_prev = prev_iclog;
                prev_iclog = iclog;
 
-               bp = xfs_buf_get_noaddr(log->l_iclog_size, mp->m_logdev_targp);
+               bp = xfs_buf_get_uncached(mp->m_logdev_targp,
+                                               log->l_iclog_size, 0);
                if (!bp)
                        goto out_free_iclog;
                if (!XFS_BUF_CPSEMA(bp))
@@ -1309,7 +1297,7 @@ xlog_bdstrat(
        if (iclog->ic_state & XLOG_STATE_IOERROR) {
                XFS_BUF_ERROR(bp, EIO);
                XFS_BUF_STALE(bp);
-               xfs_biodone(bp);
+               xfs_buf_ioend(bp, 0);
                /*
                 * It would seem logical to return EIO here, but we rely on
                 * the log state machine to propagate I/O errors instead of