Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1264383

[PATCH 3.14 31/37] Revert "md: allow a partially recovered device to be hot-added to an array."

From Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Newsgroups linux.kernel
Subject [PATCH 3.14 31/37] Revert "md: allow a partially recovered device to be hot-added to an array."
Date 2015-11-06 21:00 +0100
Message-ID <qrVl2-nS-65@gated-at.bofh.it> (permalink)
References <qrV1E-gl-13@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


3.14-stable review patch.  If anyone has any objections, please let me know.

------------------

From: NeilBrown <neilb@suse.com>

commit d01552a76d71f9879af448e9142389ee9be6e95b upstream.

This reverts commit 7eb418851f3278de67126ea0c427641ab4792c57.

This commit is poorly justified, I can find not discusison in email,
and it clearly causes a problem.

If a device which is being recovered fails and is subsequently
re-added to an array, there could easily have been changes to the
array *before* the point where the recovery was up to.  So the
recovery must start again from the beginning.

If a spare is being recovered and fails, then when it is re-added we
really should do a bitmap-based recovery up to the recovery-offset,
and then a full recovery from there.  Before this reversion, we only
did the "full recovery from there" which is not corect.  After this
reversion with will do a full recovery from the start, which is safer
but not ideal.

It will be left to a future patch to arrange the two different styles
of recovery.

Reported-and-tested-by: Nate Dailey <nate.dailey@stratus.com>
Signed-off-by: NeilBrown <neilb@suse.com>
Fixes: 7eb418851f32 ("md: allow a partially recovered device to be hot-added to an array.")
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/md/md.c |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -7775,8 +7775,7 @@ static int remove_and_add_spares(struct
 		       !test_bit(Bitmap_sync, &rdev->flags)))
 			continue;
 
-		if (rdev->saved_raid_disk < 0)
-			rdev->recovery_offset = 0;
+		rdev->recovery_offset = 0;
 		if (mddev->pers->
 		    hot_add_disk(mddev, rdev) == 0) {
 			if (sysfs_link_rdev(mddev, rdev))


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 3.14 00/37] 3.14.57-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-11-06 21:00 +0100
  [PATCH 3.14 23/37] dm btree: fix leak of bufio-backed block in btree_split_beneath error path Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-11-06 21:00 +0100
  [PATCH 3.14 28/37] crypto: api - Only abort operations on fatal signal Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-11-06 21:00 +0100
  [PATCH 3.14 07/37] powerpc/rtas: Validate rtas.entry before calling enter_rtas() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-11-06 21:00 +0100
  [PATCH 3.14 27/37] module: Fix locking in symbol_put_addr() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-11-06 21:00 +0100
  [PATCH 3.14 08/37] ASoC: wm8904: Correct number of EQ registers Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-11-06 21:00 +0100
  [PATCH 3.14 31/37] Revert "md: allow a partially recovered device to be hot-added to an array." Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-11-06 21:00 +0100
  [PATCH 3.14 21/37] Revert "ARM64: unwind: Fix PC calculation" Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-11-06 21:10 +0100
  Re: [PATCH 3.14 00/37] 3.14.57-stable review Guenter Roeck <linux@roeck-us.net> - 2015-11-07 02:50 +0100
  Re: [PATCH 3.14 00/37] 3.14.57-stable review Shuah Khan <shuahkh@osg.samsung.com> - 2015-11-07 04:00 +0100

csiph-web