Re: [PATCH 4.4 63/97] md/raid10: skip spare disk as first disk

From: Ben Hutchings
Date: Tue Apr 03 2018 - 17:32:20 EST


On Fri, 2018-03-23 at 10:54 +0100, Greg Kroah-Hartman wrote:
> 4.4-stable review patch.ÂÂIf anyone has any objections, please let me know.
>
> ------------------
>
> From: Shaohua Li <shli@xxxxxx>
>
>
> [ Upstream commit b506335e5d2b4ec687dde392a3bdbf7601778f1d ]
>
> Commit 6f287ca(md/raid10: reset the 'first' at the end of loop) ignores
> a case in reshape, the first rdev could be a spare disk, which shouldn't
> be accounted as the first disk since it doesn't include the offset info.
>
> Fix: 6f287ca(md/raid10: reset the 'first' at the end of loop)

But that commit hasn't been applied to 4.4-stable. It probably should
be, since it fixes another instance of the problem in the run()
function. Take care not to add the wrongly placed assignment
inÂraid10_start_reshape().

Ben.

> Cc: Guoqing Jiang <gqjiang@xxxxxxxx>
> Cc: NeilBrown <neilb@xxxxxxxx>
> Signed-off-by: Shaohua Li <shli@xxxxxx>
> Signed-off-by: Sasha Levin <alexander.levin@xxxxxxxxxxxxx>
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> ---
> Âdrivers/md/raid10.c |ÂÂÂÂ1 +
> Â1 file changed, 1 insertion(+)
>
> --- a/drivers/md/raid10.c
> +++ b/drivers/md/raid10.c
> @@ -4044,6 +4044,7 @@ static int raid10_start_reshape(struct m
> Â diff = 0;
> Â if (first || diff < min_offset_diff)
> Â min_offset_diff = diff;
> + first = 0;
> Â }
> Â }
> Â

--
Ben Hutchings
Software Developer, Codethink Ltd.