devname, strerror(errno));
return 1;
}
+ if (quiet <= 0)
+ fprintf(stderr, Name ": started %s\n", devname);
} else if (runstop < 0){
+ struct map_ent *map = NULL;
+ struct stat stb;
if (ioctl(fd, STOP_ARRAY, NULL)) {
if (quiet==0)
fprintf(stderr, Name ": fail to stop array %s: %s\n",
}
if (quiet <= 0)
fprintf(stderr, Name ": stopped %s\n", devname);
+ if (fstat(fd, &stb) == 0) {
+ int devnum;
+ if (major(stb.st_rdev) == MD_MAJOR)
+ devnum = minor(stb.st_rdev);
+ else
+ devnum = -1-(minor(stb.st_rdev)>>6);
+ map_delete(&map, devnum);
+ map_write(map);
+ map_free(map);
+ }
}
return 0;
}