diff options
author | Neil Brown <neilb@suse.de> | 2006-05-26 01:40:53 +0000 |
---|---|---|
committer | Neil Brown <neilb@suse.de> | 2006-05-26 01:40:53 +0000 |
commit | e7bb5d23a9b29ae6f316fe3ce8970301e1bc0d4d (patch) | |
tree | f4a8fbc18ab7fb30698f8179b938dcb527d41f81 /mdopen.c | |
parent | da6b5ca9bd6962ea70dfa750f3d85ac1657fb9cf (diff) | |
download | mdadm-e7bb5d23a9b29ae6f316fe3ce8970301e1bc0d4d.tar.gz mdadm-e7bb5d23a9b29ae6f316fe3ce8970301e1bc0d4d.tar.xz mdadm-e7bb5d23a9b29ae6f316fe3ce8970301e1bc0d4d.zip |
Choose better devnumbers and tidy up some issues with finding names.
Signed-off-by: Neil Brown <neilb@suse.de>
Diffstat (limited to 'mdopen.c')
-rw-r--r-- | mdopen.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -183,7 +183,10 @@ int open_mddev(char *dev, int autof) if (num < 0) { /* need to pick an unused number */ mdlist = mdstat_read(0, 0); - for (num = 0 ; ; num++) { + /* Choose a large number. Start from 127 and search down, + * but if nothing is found, start really big + */ + for (num = 127 ; num != 128 ; num = num ? num-1 : (1<<22)-1) { struct mdstat_ent *me; int devnum = num; if (major != MD_MAJOR) @@ -193,7 +196,7 @@ int open_mddev(char *dev, int autof) if (me->devnum == devnum) break; if (!me) { - /* doesn't exist if mdstat. + /* doesn't exist in mdstat. * make sure it is new to /dev too */ char *dn; |