[PATCH 0/2] Fixes for Incremental()
am 17.12.2010 15:16:58 von unknown
The following series consists of two fixes for problems revealed during the tests
of autorebuild. First one is quite important, as recovery process do not start
if bare disk is added to degraded array via incremental. Second one is just
a change in return value of array_try_spare().
---
Przemyslaw Czarnowski (2):
fix: adding spare via incremental do not trigger recovery
fix: incremental for bare disks return invalid value
Incremental.c | 11 ++++++++++-
1 files changed, 10 insertions(+), 1 deletions(-)
--
Best regards,
Przemyslaw Czarnowski
--
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
[PATCH 1/2] fix: adding spare via incremental do not trigger recovery
am 17.12.2010 15:17:31 von unknown
After incremental has added spare, monitor should be woken up in order
to see if anything has changed. If mdmon is not waken up, recovery do not
start.
---
Incremental.c | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/Incremental.c b/Incremental.c
index bc4531a..abd7b81 100644
--- a/Incremental.c
+++ b/Incremental.c
@@ -443,6 +443,7 @@ int Incremental(char *devname, int verbose, int runstop,
/* 7/ Is there enough devices to possibly start the array? */
/* 7a/ if not, finish with success. */
if (info.array.level == LEVEL_CONTAINER) {
+ char *devname = NULL;
/* Try to assemble within the container */
map_unlock(&map);
sysfs_uevent(&info, "change");
@@ -451,6 +452,8 @@ int Incremental(char *devname, int verbose, int runstop,
": container %s now has %d devices\n",
chosen_name, info.array.working_disks);
wait_for(chosen_name, mdfd);
+ if (st->ss->external)
+ devname = devnum2devname(fd2devnum(mdfd));
close(mdfd);
sysfs_free(sra);
rv = Incremental(chosen_name, verbose, runstop,
@@ -460,6 +463,12 @@ int Incremental(char *devname, int verbose, int runstop,
* have enough devices to start yet
*/
rv = 0;
+ /* after spare is added, ping monitor for external metadata
+ * so that it can eg. try to rebuild degraded array */
+ if (st->ss->external) {
+ ping_monitor(devname);
+ free(devname);
+ }
return rv;
}
--
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
[PATCH 2/2] fix: incremental for bare disks returns invalid value
am 17.12.2010 15:18:05 von unknown
return value should remain the same as result of Manage_Subdevs (last
significant operation). Right now it is inverted what results in
error status for successful operation.
---
Incremental.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/Incremental.c b/Incremental.c
index abd7b81..09c3c41 100644
--- a/Incremental.c
+++ b/Incremental.c
@@ -1002,7 +1002,7 @@ static int array_try_spare(char *devname, int *dfdp, struct dev_policy *pol,
}
sysfs_free(chosen);
}
- return rv ? 0 : 1;
+ return rv;
}
static int partition_try_spare(char *devname, int *dfdp, struct dev_policy *pol,
--
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 0/2] Fixes for Incremental()
am 20.12.2010 23:12:20 von NeilBrown
On Fri, 17 Dec 2010 15:16:58 +0100 Przemyslaw Czarnowski
wrote:
> The following series consists of two fixes for problems revealed during the tests
> of autorebuild. First one is quite important, as recovery process do not start
> if bare disk is added to degraded array via incremental. Second one is just
> a change in return value of array_try_spare().
>
> ---
>
> Przemyslaw Czarnowski (2):
> fix: adding spare via incremental do not trigger recovery
> fix: incremental for bare disks return invalid value
Both applied,
Thanks,
NeilBrown
>
>
> Incremental.c | 11 ++++++++++-
> 1 files changed, 10 insertions(+), 1 deletions(-)
>
--
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