summaryrefslogtreecommitdiffstats
path: root/Incremental.c
diff options
context:
space:
mode:
authorNeil Brown <neilb@suse.de>2008-05-05 21:55:36 +1000
committerNeil Brown <neilb@suse.de>2008-05-05 21:55:36 +1000
commit63152c1b330f75842644c82d925fa8dcd37fe233 (patch)
tree67a29eefae0b8b7a76cfb11e286eec1b7877efea /Incremental.c
parent5e747af24abc021073d979925628fec28052a731 (diff)
downloadmdadm-63152c1b330f75842644c82d925fa8dcd37fe233.tar.gz
mdadm-63152c1b330f75842644c82d925fa8dcd37fe233.tar.xz
mdadm-63152c1b330f75842644c82d925fa8dcd37fe233.zip
Unify code into find_free_devnum.
Two places have code to find a free md device number. Make this a subroutine.
Diffstat (limited to 'Incremental.c')
-rw-r--r--Incremental.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/Incremental.c b/Incremental.c
index 4c6a2a7..b54c4fc 100644
--- a/Incremental.c
+++ b/Incremental.c
@@ -246,20 +246,15 @@ int Incremental(char *devname, int verbose, int runstop,
if (devnum < 0) {
/* Haven't found anything yet, choose something free */
- /* There is similar code in mdopen.c - should unify */
- for (devnum = 127 ; devnum != 128 ;
- devnum = devnum ? devnum-1 : (1<<22)-1) {
- if (mddev_busy(use_partitions ?
- (-1-devnum) : devnum))
- break;
- }
- if (devnum == 128) {
+ devnum = find_free_devnum(use_partitions);
+
+ if (devnum == NoMdDev) {
fprintf(stderr, Name
": No spare md devices!!\n");
return 2;
}
- }
- devnum = use_partitions ? (-1-devnum) : devnum;
+ } else
+ devnum = use_partitions ? (-1-devnum) : devnum;
}
mdfd = open_mddev_devnum(match ? match->devname : NULL,
devnum,