Reverse order of arrays when --stop --scan

so that stacked arrays are stopped properly.
Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
This commit is contained in:
Neil Brown 2005-04-04 05:16:24 +00:00
parent 057bd352c2
commit d17c1f8cbd
2 changed files with 12 additions and 0 deletions

View File

@ -13,6 +13,8 @@ Changes Prior to 1.9.0 release
- Add some missing closes of open file descriptors.
- Reread /proc/partition for every array assembled when using
it to find devices, rather than only once.
- Make "mdadm -Ss" stop stacked devices properly, by reversing the
order in which arrays are stopped.
Changes Prior to 1.8.0 release
- Makefile cleanup from Luca Berra <bluca@comedia.it>

10
mdadm.c
View File

@ -793,6 +793,16 @@ int main(int argc, char *argv[])
/* apply to all devices in /proc/mdstat */
struct mdstat_ent *ms = mdstat_read(0);
struct mdstat_ent *e;
if (devmode == 'S') {
/* reverse order so that arrays made of arrays are stopped properly */
struct mdstat_ent *sm = NULL;
while ((e=ms) != NULL) {
ms = e->next;
e->next = sm;
sm = e;
}
ms = sm;
}
for (e=ms ; e ; e=e->next) {
char *name = get_md_name(e->devnum);