When performing backward takeover to raid0 monitor cannot exit for single raid0 array configuration. Monitor is locked by communication (ping_manager()) after unfreeze() Do not ping manager for raid0 array as they shouldn't be monitored. Signed-off-by: Adam Kwolek <adam.kwolek@xxxxxxxxx> --- msg.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) diff --git a/msg.c b/msg.c index 5ddf6e3..5511ecd 100644 --- a/msg.c +++ b/msg.c @@ -381,6 +381,7 @@ void unblock_monitor(char *container, const int unfreeze) { struct mdstat_ent *ent, *e; struct mdinfo *sra = NULL; + int to_ping = 0; ent = mdstat_read(0, 0); if (!ent) { @@ -394,11 +395,14 @@ void unblock_monitor(char *container, const int unfreeze) if (!is_container_member(e, container)) continue; sysfs_free(sra); - sra = sysfs_read(-1, e->devnum, GET_VERSION); + sra = sysfs_read(-1, e->devnum, GET_VERSION|GET_LEVEL); + if (sra->array.level > 0) + to_ping++; if (unblock_subarray(sra, unfreeze)) fprintf(stderr, Name ": Failed to unfreeze %s\n", e->dev); } - ping_monitor(container); + if (to_ping) + ping_monitor(container); sysfs_free(sra); free_mdstat(ent); -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html