diff options
author | Neil Brown <neilb@suse.de> | 2008-05-05 21:55:36 +1000 |
---|---|---|
committer | Neil Brown <neilb@suse.de> | 2008-05-05 21:55:36 +1000 |
commit | 63152c1b330f75842644c82d925fa8dcd37fe233 (patch) | |
tree | 67a29eefae0b8b7a76cfb11e286eec1b7877efea /Incremental.c | |
parent | 5e747af24abc021073d979925628fec28052a731 (diff) | |
download | mdadm-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.c | 15 |
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, |