X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fmdadm.git;a=blobdiff_plain;f=super-intel.c;h=41e916891d8aba9e7033f2b1468cb0c0555716c0;hp=266d734d0c15432a49a9ba1bb2b4c57e043349bd;hb=1ce0101c9a16ab5ffa148a0b8f5c9ac0d7b81684;hpb=1484e727976ef1352f5e8b48889efd22b209b737 diff --git a/super-intel.c b/super-intel.c index 266d734d..41e91689 100644 --- a/super-intel.c +++ b/super-intel.c @@ -3355,6 +3355,18 @@ static struct mdinfo *container_content_imsm(struct supertype *st) struct mdinfo *this; int slot; + /* do not publish arrays that are in the middle of an + * unsupported migration + */ + if (dev->vol.migr_state && + (migr_type(dev) == MIGR_GEN_MIGR || + migr_type(dev) == MIGR_STATE_CHANGE)) { + fprintf(stderr, Name ": cannot assemble volume '%.16s':" + " unsupported migration in progress\n", + dev->volume); + continue; + } + this = malloc(sizeof(*this)); memset(this, 0, sizeof(*this)); this->next = rest; @@ -3401,7 +3413,7 @@ static struct mdinfo *container_content_imsm(struct supertype *st) info_d = malloc(sizeof(*info_d)); if (!info_d) { fprintf(stderr, Name ": failed to allocate disk" - " for volume %s\n", (char *) dev->volume); + " for volume %.16s\n", dev->volume); free(this); this = rest; break;