Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 241880
Collapse All | Expand All

(-)linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_buf.c (+1 lines)
Lines 1007-1012 xfs_buf_iodone_work( Link Here
1007
	    (bp->b_flags & (XBF_ORDERED|XBF_ASYNC)) == (XBF_ORDERED|XBF_ASYNC)) {
1007
	    (bp->b_flags & (XBF_ORDERED|XBF_ASYNC)) == (XBF_ORDERED|XBF_ASYNC)) {
1008
		XB_TRACE(bp, "ordered_retry", bp->b_iodone);
1008
		XB_TRACE(bp, "ordered_retry", bp->b_iodone);
1009
		bp->b_flags &= ~XBF_ORDERED;
1009
		bp->b_flags &= ~XBF_ORDERED;
1010
		bp->b_flags |= _XFS_BARRIER_FAILED;
1010
		xfs_buf_iorequest(bp);
1011
		xfs_buf_iorequest(bp);
1011
	} else if (bp->b_iodone)
1012
	} else if (bp->b_iodone)
1012
		(*(bp->b_iodone))(bp);
1013
		(*(bp->b_iodone))(bp);
(-)linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_buf.h (+8 lines)
Lines 85-90 typedef enum { Link Here
85
	 * modifications being lost.
85
	 * modifications being lost.
86
	 */
86
	 */
87
	_XBF_PAGE_LOCKED = (1 << 22),
87
	_XBF_PAGE_LOCKED = (1 << 22),
88
89
	/*
90
	 * If we try a barrier write, but it fails we have to communicate
91
	 * this to the upper layers.  Unfortunately b_error gets overwritten
92
	 * when the buffer is re-issued so we have to add another flag to
93
	 * keep this information.
94
	 */
95
	_XFS_BARRIER_FAILED = (1 << 23),
88
} xfs_buf_flags_t;
96
} xfs_buf_flags_t;
89
97
90
typedef enum {
98
typedef enum {
(-)linux-2.6-xfs.orig/fs/xfs/xfs_log.c (-1 / +2 lines)
Lines 1037-1043 xlog_iodone(xfs_buf_t *bp) Link Here
1037
	 * layer, it means the underlyin device no longer supports
1037
	 * layer, it means the underlyin device no longer supports
1038
	 * barrier I/O. Warn loudly and turn off barriers.
1038
	 * barrier I/O. Warn loudly and turn off barriers.
1039
	 */
1039
	 */
1040
	if ((l->l_mp->m_flags & XFS_MOUNT_BARRIER) && !XFS_BUF_ISORDERED(bp)) {
1040
	if (bp->b_flags & _XFS_BARRIER_FAILED) {
1041
		bp->b_flags &= ~_XFS_BARRIER_FAILED;
1041
		l->l_mp->m_flags &= ~XFS_MOUNT_BARRIER;
1042
		l->l_mp->m_flags &= ~XFS_MOUNT_BARRIER;
1042
		xfs_fs_cmn_err(CE_WARN, l->l_mp,
1043
		xfs_fs_cmn_err(CE_WARN, l->l_mp,
1043
				"xlog_iodone: Barriers are no longer supported"
1044
				"xlog_iodone: Barriers are no longer supported"

Return to bug 241880