rpms/kernel/devel TODO,1.13,1.14 xfs-barrier-fix.patch,1.1,1.2

Chuck Ebbert cebbert at fedoraproject.org
Fri Oct 10 18:27:37 UTC 2008


Author: cebbert

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv29561

Modified Files:
	TODO xfs-barrier-fix.patch 
Log Message:
XFS barrier patch merged upstream


Index: TODO
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/TODO,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- TODO	10 Oct 2008 01:05:41 -0000	1.13
+++ TODO	10 Oct 2008 18:27:07 -0000	1.14
@@ -155,3 +155,6 @@
 
 linux-2.6-x86-improve-up-kernel-when-cpu-hotplug-and-smp.patch
 	scheduled for 2.6.28, should go in 2.6.27-stable after merging
+
+xfs-barrier-fix.patch
+	in 2.6.28-rc, should be sent for -stable

xfs-barrier-fix.patch:

Index: xfs-barrier-fix.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/xfs-barrier-fix.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- xfs-barrier-fix.patch	9 Oct 2008 15:44:21 -0000	1.1
+++ xfs-barrier-fix.patch	10 Oct 2008 18:27:07 -0000	1.2
@@ -1,3 +1,10 @@
+From: Christoph Hellwig <hch at lst.de>
+Date: Fri, 10 Oct 2008 06:28:29 +0000 (+1100)
+Subject: Fix barrier fail detection in XFS
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=73f6aa4d44ab6157badc456ddfa05b31e58de5f0
+
+Fix barrier fail detection in XFS
+
 Currently we disable barriers as soon as we get a buffer in xlog_iodone
 that has the XBF_ORDERED flag cleared.  But this can be the case not only
 for buffers where the barrier failed, but also the first buffer of a
@@ -12,14 +19,25 @@
 
 Thanks to Toei Rei for reporting the bug.
 
-
 Signed-off-by: Christoph Hellwig <hch at lst.de>
-
-Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.c
-===================================================================
---- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_buf.c	2008-10-09 13:36:50.000000000 +0200
-+++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.c	2008-10-09 13:38:38.000000000 +0200
-@@ -1007,6 +1007,7 @@ xfs_buf_iodone_work(
+Reviewed-by: Eric Sandeen <sandeen at sandeen.net>
+Reviewed-by: David Chinner <david at fromorbit.com>
+Signed-off-by: Tim Shimmin <tes at sgi.com>
+Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
+---
+
+diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c
+index 986061a..36d5fcd 100644
+--- a/fs/xfs/linux-2.6/xfs_buf.c
++++ b/fs/xfs/linux-2.6/xfs_buf.c
+@@ -1001,12 +1001,13 @@ xfs_buf_iodone_work(
+ 	 * We can get an EOPNOTSUPP to ordered writes.  Here we clear the
+ 	 * ordered flag and reissue them.  Because we can't tell the higher
+ 	 * layers directly that they should not issue ordered I/O anymore, they
+-	 * need to check if the ordered flag was cleared during I/O completion.
++	 * need to check if the _XFS_BARRIER_FAILED flag was set during I/O completion.
+ 	 */
+ 	if ((bp->b_error == EOPNOTSUPP) &&
  	    (bp->b_flags & (XBF_ORDERED|XBF_ASYNC)) == (XBF_ORDERED|XBF_ASYNC)) {
  		XB_TRACE(bp, "ordered_retry", bp->b_iodone);
  		bp->b_flags &= ~XBF_ORDERED;
@@ -27,10 +45,10 @@
  		xfs_buf_iorequest(bp);
  	} else if (bp->b_iodone)
  		(*(bp->b_iodone))(bp);
-Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.h
-===================================================================
---- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_buf.h	2008-10-09 13:36:50.000000000 +0200
-+++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.h	2008-10-09 13:38:15.000000000 +0200
+diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h
+index fe01099..456519a 100644
+--- a/fs/xfs/linux-2.6/xfs_buf.h
++++ b/fs/xfs/linux-2.6/xfs_buf.h
 @@ -85,6 +85,14 @@ typedef enum {
  	 * modifications being lost.
  	 */
@@ -46,12 +64,18 @@
  } xfs_buf_flags_t;
  
  typedef enum {
-Index: linux-2.6-xfs/fs/xfs/xfs_log.c
-===================================================================
---- linux-2.6-xfs.orig/fs/xfs/xfs_log.c	2008-10-09 13:38:44.000000000 +0200
-+++ linux-2.6-xfs/fs/xfs/xfs_log.c	2008-10-09 13:39:32.000000000 +0200
-@@ -1037,7 +1037,8 @@ xlog_iodone(xfs_buf_t *bp)
- 	 * layer, it means the underlyin device no longer supports
+diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c
+index 503ea89..0b02c64 100644
+--- a/fs/xfs/xfs_log.c
++++ b/fs/xfs/xfs_log.c
+@@ -1033,11 +1033,12 @@ xlog_iodone(xfs_buf_t *bp)
+ 	l = iclog->ic_log;
+ 
+ 	/*
+-	 * If the ordered flag has been removed by a lower
+-	 * layer, it means the underlyin device no longer supports
++	 * 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 ((l->l_mp->m_flags & XFS_MOUNT_BARRIER) && !XFS_BUF_ISORDERED(bp)) {
@@ -60,6 +84,3 @@
  		l->l_mp->m_flags &= ~XFS_MOUNT_BARRIER;
  		xfs_fs_cmn_err(CE_WARN, l->l_mp,
  				"xlog_iodone: Barriers are no longer supported"
-
-
-




More information about the scm-commits mailing list