We do need a barrier for the first buffer of a split log write. Otherwise we might incorrectly stamp the tail LSN into transactions in the first block, or not flush data I/O before updating the inode size. Signed-off-by: Christoph Hellwig <hch@xxxxxx> Index: xfs-dev/fs/xfs/xfs_log.c =================================================================== --- xfs-dev.orig/fs/xfs/xfs_log.c 2010-06-28 11:51:30.423004228 +0200 +++ xfs-dev/fs/xfs/xfs_log.c 2010-06-28 11:52:52.559255519 +0200 @@ -1423,11 +1423,8 @@ xlog_sync(xlog_t *log, XFS_BUF_BUSY(bp); XFS_BUF_ASYNC(bp); bp->b_flags |= XBF_LOG_BUFFER; - /* - * Do an ordered write for the log block. - * Its unnecessary to flush the first split block in the log wrap case. - */ - if (!split && (log->l_mp->m_flags & XFS_MOUNT_BARRIER)) + + if (log->l_mp->m_flags & XFS_MOUNT_BARRIER) XFS_BUF_ORDERED(bp); ASSERT(XFS_BUF_ADDR(bp) <= log->l_logBBsize-1); _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs