diff options
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | mdopen.c | 33 | ||||
-rw-r--r-- | util.c | 33 |
3 files changed, 34 insertions, 34 deletions
@@ -127,7 +127,7 @@ SRCS = $(patsubst %.o,%.c,$(OBJS)) INCL = mdadm.h part.h bitmap.h MON_OBJS = mdmon.o monitor.o managemon.o util.o maps.o mdstat.o sysfs.o \ - config.o policy.o lib.o \ + policy.o lib.o \ Kill.o sg_io.o dlink.o ReadMe.o super0.o super1.o super-intel.o \ super-mbr.o super-gpt.o \ super-ddf.o sha1.o crc32.o msg.o bitmap.o xmalloc.o \ @@ -438,3 +438,36 @@ int open_mddev(char *dev, int report_errors) } return mdfd; } + +char *find_free_devnm(int use_partitions) +{ + static char devnm[32]; + int devnum; + for (devnum = 127; devnum != 128; + devnum = devnum ? devnum-1 : (1<<20)-1) { + + if (use_partitions) + sprintf(devnm, "md_d%d", devnum); + else + sprintf(devnm, "md%d", devnum); + if (mddev_busy(devnm)) + continue; + if (!conf_name_is_free(devnm)) + continue; + if (!use_udev()) { + /* make sure it is new to /dev too, at least as a + * non-standard */ + int devid = devnm2devid(devnm); + if (devid) { + char *dn = map_dev(major(devid), + minor(devid), 0); + if (dn && ! is_standard(dn, NULL)) + continue; + } + } + break; + } + if (devnum == 128) + return NULL; + return devnm; +} @@ -868,39 +868,6 @@ void put_md_name(char *name) if (strncmp(name, "/dev/.tmp.md", 12) == 0) unlink(name); } - -char *find_free_devnm(int use_partitions) -{ - static char devnm[32]; - int devnum; - for (devnum = 127; devnum != 128; - devnum = devnum ? devnum-1 : (1<<20)-1) { - - if (use_partitions) - sprintf(devnm, "md_d%d", devnum); - else - sprintf(devnm, "md%d", devnum); - if (mddev_busy(devnm)) - continue; - if (!conf_name_is_free(devnm)) - continue; - if (!use_udev()) { - /* make sure it is new to /dev too, at least as a - * non-standard */ - int devid = devnm2devid(devnm); - if (devid) { - char *dn = map_dev(major(devid), - minor(devid), 0); - if (dn && ! is_standard(dn, NULL)) - continue; - } - } - break; - } - if (devnum == 128) - return NULL; - return devnm; -} #endif /* !defined(MDASSEMBLE) || defined(MDASSEMBLE) && defined(MDASSEMBLE_AUTO) */ int dev_open(char *dev, int flags) |