[PATCH] Monitor: pass statelist reference when adding new arrays

[PATCH] Monitor: pass statelist reference when adding new arrays

am 01.12.2010 11:37:22 von anna.czarnowska

From af217d38a81223408fc53ef485d7c5bd43b9d841 Mon Sep 17 00:00:00 2001
From: Anna Czarnowska
Date: Tue, 30 Nov 2010 14:44:45 +0100
Subject: [PATCH] Monitor: pass statelist reference when adding new arrays
Cc: linux-raid@vger.kernel.org, Williams, Dan J , Ciechanowski, Ed

Otherwise it will not get updated.

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

diff --git a/Monitor.c b/Monitor.c
index d5514e9..e7f6d03 100644
--- a/Monitor.c
+++ b/Monitor.c
@@ -70,7 +70,7 @@ static void alert(char *event, char *dev, char *disc, struct alert_info *info);
static int check_array(struct state *st, struct mdstat_ent *mdstat,
int test, struct alert_info *info,
int increments);
-static int add_new_arrays(struct mdstat_ent *mdstat, struct state *statelist,
+static int add_new_arrays(struct mdstat_ent *mdstat, struct state **statelist,
int test, struct alert_info *info);
static void try_spare_migration(struct state *statelist, struct alert_info *info);
static void link_containers_with_subarrays(struct state *list);
@@ -223,7 +223,7 @@ int Monitor(struct mddev_dev *devlist,

/* now check if there are any new devices found in mdstat */
if (scan)
- new_found = add_new_arrays(mdstat, statelist, test,
+ new_found = add_new_arrays(mdstat, &statelist, test,
&info);

/* If an array has active < raid && spare == 0 && spare_group != NULL
@@ -642,7 +642,7 @@ static int check_array(struct state *st, struct mdstat_ent *mdstat,
return 0;
}

-static int add_new_arrays(struct mdstat_ent *mdstat, struct state *statelist,
+static int add_new_arrays(struct mdstat_ent *mdstat, struct state **statelist,
int test, struct alert_info *info)
{
struct mdstat_ent *mse;
@@ -674,7 +674,7 @@ static int add_new_arrays(struct mdstat_ent *mdstat, struct state *statelist,
continue;
}
close(fd);
- st->next = statelist;
+ st->next = *statelist;
st->err = 1;
st->devnum = mse->devnum;
st->percent = -2;
@@ -685,7 +685,7 @@ static int add_new_arrays(struct mdstat_ent *mdstat, struct state *statelist,
devname2devnum(mse->metadata_version+10);
else
st->parent_dev = NoMdDev;
- statelist = st;
+ *statelist = st;
if (test)
alert("TestMessage", st->devname, NULL, info);
alert("NewArray", st->devname, NULL, info);
--
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] Monitor: pass statelist reference when adding newarrays

am 01.12.2010 12:25:55 von NeilBrown

On Wed, 1 Dec 2010 10:37:22 +0000 "Czarnowska, Anna"
wrote:

> >From af217d38a81223408fc53ef485d7c5bd43b9d841 Mon Sep 17 00:00:00 2001
> From: Anna Czarnowska
> Date: Tue, 30 Nov 2010 14:44:45 +0100
> Subject: [PATCH] Monitor: pass statelist reference when adding new arrays
> Cc: linux-raid@vger.kernel.org, Williams, Dan J , Ciechanowski, Ed
>
> Otherwise it will not get updated.

Yes, of course.

Thanks a lot!

Applied and pushed out.

NeilBrown


>
> Signed-off-by: Anna Czarnowska
> ---
> Monitor.c | 10 +++++-----
> 1 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/Monitor.c b/Monitor.c
> index d5514e9..e7f6d03 100644
> --- a/Monitor.c
> +++ b/Monitor.c
> @@ -70,7 +70,7 @@ static void alert(char *event, char *dev, char *disc, struct alert_info *info);
> static int check_array(struct state *st, struct mdstat_ent *mdstat,
> int test, struct alert_info *info,
> int increments);
> -static int add_new_arrays(struct mdstat_ent *mdstat, struct state *statelist,
> +static int add_new_arrays(struct mdstat_ent *mdstat, struct state **statelist,
> int test, struct alert_info *info);
> static void try_spare_migration(struct state *statelist, struct alert_info *info);
> static void link_containers_with_subarrays(struct state *list);
> @@ -223,7 +223,7 @@ int Monitor(struct mddev_dev *devlist,
>
> /* now check if there are any new devices found in mdstat */
> if (scan)
> - new_found = add_new_arrays(mdstat, statelist, test,
> + new_found = add_new_arrays(mdstat, &statelist, test,
> &info);
>
> /* If an array has active < raid && spare == 0 && spare_group != NULL
> @@ -642,7 +642,7 @@ static int check_array(struct state *st, struct mdstat_ent *mdstat,
> return 0;
> }
>
> -static int add_new_arrays(struct mdstat_ent *mdstat, struct state *statelist,
> +static int add_new_arrays(struct mdstat_ent *mdstat, struct state **statelist,
> int test, struct alert_info *info)
> {
> struct mdstat_ent *mse;
> @@ -674,7 +674,7 @@ static int add_new_arrays(struct mdstat_ent *mdstat, struct state *statelist,
> continue;
> }
> close(fd);
> - st->next = statelist;
> + st->next = *statelist;
> st->err = 1;
> st->devnum = mse->devnum;
> st->percent = -2;
> @@ -685,7 +685,7 @@ static int add_new_arrays(struct mdstat_ent *mdstat, struct state *statelist,
> devname2devnum(mse->metadata_version+10);
> else
> st->parent_dev = NoMdDev;
> - statelist = st;
> + *statelist = st;
> if (test)
> alert("TestMessage", st->devname, NULL, info);
> alert("NewArray", st->devname, NULL, info);

--
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