From 1d17e671ef244252a761165e92def6cf8a8098ec Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20R=C4=99korajski?= Date: Sat, 20 Sep 2014 22:44:39 +0200 Subject: [PATCH] - up to 3.10.55 - raid fix applied upstream --- kernel-small_fixes.patch | 71 ---------------------------------------- kernel-vserver-2.3.patch | 2 +- kernel.spec | 6 ++-- 3 files changed, 4 insertions(+), 75 deletions(-) diff --git a/kernel-small_fixes.patch b/kernel-small_fixes.patch index 1c46d483..5c0de9dc 100644 --- a/kernel-small_fixes.patch +++ b/kernel-small_fixes.patch @@ -112,74 +112,3 @@ index 4e565c8..732648b 100644 spin_lock_init(&group->fanotify_data.access_lock); -- cgit v0.10.1 - - -Hi all, - There is a risk of data loss with md/raid6 arrays running on Linux since - 2.6.32. - If: - - the array is doubly degraded - - one or both failed devices are being recovered, and - - the array is written to - - then it is possible for data on the array to be lost. The patch below fixes - the problem. If you apply the patch to an older kernel which has separate - handle_stripe5() and handle_stripe6() functions, be sure that patch changes - handle_stripe6(). - - There is no risk to an optimal array or a singly-degraded array. There is - also no risk on a doubly-degraded array which is not recovering a device or - is not receiving write requests. - - If you have data on a RAID6 array, please consider how to avoid corruption, - possibly by applying the patch, possibly by removing any hot spares so - recovery does not automatically start. - - This patch will be sent upstream shortly and will subsequently appear in - future "-stable" kernels. - -NeilBrown - -From f94e37dce722ec7b6666fd04be357f422daa02b5 Mon Sep 17 00:00:00 2001 -From: NeilBrown -Date: Wed, 13 Aug 2014 09:57:07 +1000 -Subject: [PATCH] md/raid6: avoid data corruption during recovery of - double-degraded RAID6 - -During recovery of a double-degraded RAID6 it is possible for -some blocks not to be recovered properly, leading to corruption. - -If a write happens to one block in a stripe that would be written to a -missing device, and at the same time that stripe is recovering data -to the other missing device, then that recovered data may not be written. - -This patch skips, in the double-degraded case, an optimisation that is -only safe for single-degraded arrays. - -Bug was introduced in 2.6.32 and fix is suitable for any kernel since -then. In an older kernel with separate handle_stripe5() and -handle_stripe6() functions that patch must change handle_stripe6(). - -Cc: stable@vger.kernel.org (2.6.32+) -Fixes: 6c0069c0ae9659e3a91b68eaed06a5c6c37f45c8 -Cc: Yuri Tikhonov -Cc: Dan Williams -Reported-by: "Manibalan P" -Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1090423 -Signed-off-by: NeilBrown - -diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c -index 6b2d615d1094..183588b11fc1 100644 ---- a/drivers/md/raid5.c -+++ b/drivers/md/raid5.c -@@ -3817,6 +3817,8 @@ static void handle_stripe(struct stripe_head *sh) - set_bit(R5_Wantwrite, &dev->flags); - if (prexor) - continue; -+ if (s.failed > 1) -+ continue; - if (!test_bit(R5_Insync, &dev->flags) || - ((i == sh->pd_idx || i == sh->qd_idx) && - s.failed == 0)) - - diff --git a/kernel-vserver-2.3.patch b/kernel-vserver-2.3.patch index b311248d..4fb7855c 100644 --- a/kernel-vserver-2.3.patch +++ b/kernel-vserver-2.3.patch @@ -4257,9 +4257,9 @@ diff -NurpP --minimal linux-3.10.53/fs/namei.c linux-3.10.53-vs2.3.6.8/fs/namei. --- linux-3.10.53/fs/namei.c 2014-08-30 13:38:57.000000000 +0000 +++ linux-3.10.53-vs2.3.6.8/fs/namei.c 2014-08-30 14:03:54.000000000 +0000 @@ -34,9 +34,19 @@ - #include #include #include + #include +#include +#include +#include diff --git a/kernel.spec b/kernel.spec index 1c9bbd48..261d9838 100644 --- a/kernel.spec +++ b/kernel.spec @@ -69,9 +69,9 @@ %define have_pcmcia 0 %endif -%define rel 2 +%define rel 1 %define basever 3.10 -%define postver .54 +%define postver .55 %define versuffix -%{basever} @@ -116,7 +116,7 @@ Source0: http://www.kernel.org/pub/linux/kernel/v3.x/linux-%{basever}.tar.xz # Source0-md5: 4f25cd5bec5f8d5a7d935b3f2ccb8481 %if "%{postver}" != ".0" Patch0: http://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.xz -# Patch0-md5: aef1e3fb108cce7a8292b7419d0cae0f +# Patch0-md5: cfe6bac0660275dc3ecf6cf942d9f68d %endif Source1: kernel.sysconfig -- 2.44.0