[packages/kernel] - up to 3.7.5; add xfs too rarely flushing data to disk

arekm arekm at pld-linux.org
Mon Jan 28 12:19:15 CET 2013


commit a92b037ed195195cf6322acab804b48b26704a96
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Mon Jan 28 12:19:09 2013 +0100

    - up to 3.7.5; add xfs too rarely flushing data to disk

 kernel-small_fixes.patch | 38 ++++++++++++++++++++++++++++++++++++++
 kernel.spec              |  4 ++--
 2 files changed, 40 insertions(+), 2 deletions(-)
---
diff --git a/kernel.spec b/kernel.spec
index 03f0a66..8d487ff 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -68,7 +68,7 @@
 
 %define		rel		1
 %define		basever		3.7
-%define		postver		.4
+%define		postver		.5
 
 # __alt_kernel is list of features, empty string if none set
 # _alt kernel is defined as: %{nil}%{?alt_kernel:-%{?alt_kernel}} (defined in rpm.macros)
@@ -111,7 +111,7 @@ Source0:	http://www.kernel.org/pub/linux/kernel/v3.x/linux-%{basever}.tar.xz
 # Source0-md5:	21223369d682bcf44bcdfe1521095983
 %if "%{postver}" != ".0"
 Patch0:		http://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.bz2
-# Patch0-md5:	1c6f962e3c9fc37cdb59c4757d28ab9a
+# Patch0-md5:	0bb3a5b1c5ee7ae694e3db58b2b69a8d
 %endif
 
 Source3:	kernel-autoconf.h
diff --git a/kernel-small_fixes.patch b/kernel-small_fixes.patch
index 324fe59..7a29e8d 100644
--- a/kernel-small_fixes.patch
+++ b/kernel-small_fixes.patch
@@ -665,3 +665,41 @@ index 205af8d..22436f7 100644
 -- 
 1.7.6.5
 
+From: Dave Chinner <dchinner at redhat.com>
+
+There is a logic inversion in xfssyncd_worker() which means that the
+log is not periodically forced or idled correctly. This means that
+metadata changes aggregated in memory do not get flushed in a timely
+manner, and hence if filesystem is not cleanly unmounted those
+changes can be lost. This loss can manifest itself even hours after
+the changes were made if the filesystem is left to idle without a
+sync() occurring between the last modification and the
+crash/shutdown occuring.
+
+cc: <stable at vger.kerel.org> # 3.7, 3.6, 3.5
+Signed-off-by: Dave Chinner <dchinner at redhat.com>
+Reviewed-by: Ben Myers <bpm at sgi.com>
+Signed-off-by: Ben Myers <bpm at sgi.com>
+
+---
+ fs/xfs/xfs_sync.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+If people agree the fix is correct, I'll post it to the -stable
+list for inclusion...
+
+diff --git a/fs/xfs/xfs_sync.c b/fs/xfs/xfs_sync.c
+index 9500caf..7bf85e8 100644
+--- a/fs/xfs/xfs_sync.c
++++ b/fs/xfs/xfs_sync.c
+@@ -400,7 +400,7 @@ xfs_sync_worker(
+ 	 * cancel_delayed_work_sync on this work queue before tearing down
+ 	 * the ail and the log in xfs_log_unmount.
+ 	 */
+-	if (!(mp->m_super->s_flags & MS_ACTIVE) &&
++	if ((mp->m_super->s_flags & MS_ACTIVE) &&
+ 	    !(mp->m_flags & XFS_MOUNT_RDONLY)) {
+ 		/* dgc: errors ignored here */
+ 		if (mp->m_super->s_writers.frozen == SB_UNFROZEN &&
+
+
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/kernel.git/commitdiff/a92b037ed195195cf6322acab804b48b26704a96



More information about the pld-cvs-commit mailing list