Use mddev_busy() as GET_ARRAY_INFO can succeed on 'clear' arrays.
Ran into this after an encountering a case where mdadm -Ss ended in
segfault (missing check for NULL return from map_by_devnum() in
sles11:Manage.c). So, tried to stop the array by hand with echo clear >
md/array_state, after which I could not reassemble since GET_ARRAY_INFO
was succeeding.
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
mddev_dev_t tmpdev;
struct mdinfo info;
struct mdinfo *content = NULL;
- mdu_array_info_t tmp_inf;
char *avail;
int nextspare = 0;
char *name = NULL;
close(mdfd);
return 1;
}
- if (ioctl(mdfd, GET_ARRAY_INFO, &tmp_inf)==0) {
+ if (mddev_busy(fd2devnum(mdfd))) {
fprintf(stderr, Name ": %s already active, cannot restart it!\n",
mddev);
for (tmpdev = devlist ;