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 /util.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 'util.c')
-rw-r--r-- | util.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -414,6 +414,8 @@ char *map_dev(int major, int minor, int create) { struct devmap *p; char *std = NULL, *nonstd=NULL; + int did_check = 0; + retry: if (!devlist_ready) { char *dev = "/dev"; struct stat stb; @@ -422,6 +424,7 @@ char *map_dev(int major, int minor, int create) dev = "/dev/."; nftw(dev, add_dev, 10, FTW_PHYS); devlist_ready=1; + did_check = 1; } for (p=devlist; p; p=p->next) @@ -437,6 +440,10 @@ char *map_dev(int major, int minor, int create) nonstd = p->name; } } + if (!std && !nonstd && !did_check) { + devlist_ready = 0; + goto retry; + } if (create && !std && !nonstd) { static char buf[30]; snprintf(buf, 1024, "%d:%d", major, minor); |