[PATCH] xfs: remove incorrect log write optimization

Christoph Hellwig hch at infradead.org
Fri Jul 9 11:13:24 CDT 2010


ping?

On Mon, Jun 28, 2010 at 10:34:34AM -0400, Christoph Hellwig wrote:
> 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 at lst.de>
> 
> 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 at oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs
---end quoted text---




More information about the xfs mailing list