X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fmdadm.git;a=blobdiff_plain;f=Build.c;h=7f3925864731bf63e0c1c1a10357a3476a95a2fe;hp=52fc0ca01623cbeb220aa180a488fdcbd557e552;hb=df0d4ea04e34fc5d499056b00fa1e0a25f21453e;hpb=8a659c33212f85cc0dcecc759b7b36b0bb2b4fe4 diff --git a/Build.c b/Build.c index 52fc0ca0..7f392586 100644 --- a/Build.c +++ b/Build.c @@ -1,7 +1,7 @@ /* * mdadm - manage Linux "md" devices aka RAID arrays. * - * Copyright (C) 2001-2006 Neil Brown + * Copyright (C) 2001-2009 Neil Brown * * * This program is free software; you can redistribute it and/or modify @@ -19,12 +19,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Author: Neil Brown - * Email: - * Paper: Neil Brown - * School of Computer Science and Engineering - * The University of New South Wales - * Sydney, 2052 - * Australia + * Email: */ #include "mdadm.h" @@ -36,7 +31,7 @@ int Build(char *mddev, int chunk, int level, int layout, int raiddisks, mddev_dev_t devlist, int assume_clean, char *bitmap_file, int bitmap_chunk, int write_behind, - int delay, int verbose, int autof) + int delay, int verbose, int autof, unsigned long long size) { /* Build a linear or raid0 arrays without superblocks * We cannot really do any checks, we just do it. @@ -57,7 +52,6 @@ int Build(char *mddev, int chunk, int level, int layout, int subdevs = 0, missing_disks = 0; mddev_dev_t dv; int bitmap_fd; - unsigned long long size = ~0ULL; unsigned long long bitmapsize; int mdfd; char chosen_name[1024]; @@ -135,7 +129,7 @@ int Build(char *mddev, int chunk, int level, int layout, if (vers >= 9000) { mdu_array_info_t array; array.level = level; - array.size = 0; + array.size = size; array.nr_disks = raiddisks; array.raid_disks = raiddisks; array.md_minor = 0; @@ -194,7 +188,7 @@ int Build(char *mddev, int chunk, int level, int layout, (size == 0 || dsize < size)) size = dsize; close(fd); - if (vers>= 9000) { + if (vers >= 9000) { mdu_disk_info_t disk; disk.number = i; disk.raid_disk = i; @@ -281,8 +275,8 @@ int Build(char *mddev, int chunk, int level, int layout, if (verbose >= 0) fprintf(stderr, Name ": array %s built and started.\n", mddev); + wait_for(mddev, mdfd); close(mdfd); - wait_for(mddev); return 0; abort: