[PATCH] fix: segfault if subarray is monitored but container is not

[PATCH] fix: segfault if subarray is monitored but container is not

am 13.01.2011 14:22:16 von anna.czarnowska

From 7ea892adec6d2f383059b2a337db766735d7217f Mon Sep 17 00:00:00 2001
From: Anna Czarnowska
Date: Thu, 13 Jan 2011 14:14:57 +0100
Subject: [PATCH] fix: segfault if subarray is monitored but container is not

In this situation to->parent is null so "to" doesn't change to
parent container and to->metadata is still null.
This results in segmentation fault when checking
to->metadata->ss->external.
We should just skip this array as container is needed to move spares to.

Signed-off-by: Anna Czarnowska
---
Monitor.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/Monitor.c b/Monitor.c
index db4e8cc..ab1ae26 100644
--- a/Monitor.c
+++ b/Monitor.c
@@ -833,6 +833,11 @@ static void try_spare_migration(struct state *statelist, struct alert_info *info
struct state *to = st;
unsigned long long min_size;

+ if (to->parent_dev != NoMdDev && !to->parent)
+ /* subarray monitored without parent container
+ * we can't move spares here */
+ continue;
+
if (to->parent)
/* member of a container */
to = to->parent;
--
1.7.1

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

Re: [PATCH] fix: segfault if subarray is monitored but container isnot

am 17.01.2011 02:09:13 von NeilBrown

On Thu, 13 Jan 2011 13:22:16 +0000 "Czarnowska, Anna"
wrote:

> >From 7ea892adec6d2f383059b2a337db766735d7217f Mon Sep 17 00:00:00 2001
> From: Anna Czarnowska
> Date: Thu, 13 Jan 2011 14:14:57 +0100
> Subject: [PATCH] fix: segfault if subarray is monitored but container is not
>
> In this situation to->parent is null so "to" doesn't change to
> parent container and to->metadata is still null.
> This results in segmentation fault when checking
> to->metadata->ss->external.
> We should just skip this array as container is needed to move spares to.
>
> Signed-off-by: Anna Czarnowska
> ---
> Monitor.c | 5 +++++
> 1 files changed, 5 insertions(+), 0 deletions(-)
>
> diff --git a/Monitor.c b/Monitor.c
> index db4e8cc..ab1ae26 100644
> --- a/Monitor.c
> +++ b/Monitor.c
> @@ -833,6 +833,11 @@ static void try_spare_migration(struct state *statelist, struct alert_info *info
> struct state *to = st;
> unsigned long long min_size;
>
> + if (to->parent_dev != NoMdDev && !to->parent)
> + /* subarray monitored without parent container
> + * we can't move spares here */
> + continue;
> +
> if (to->parent)
> /* member of a container */
> to = to->parent;

Applied, thanks.

NeilBrown

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