[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