btrfs-progs: enforce block count on all devices in mkfs

I had a test that creates a 7gig raid1 device but it was ending up wonky
because the second device that gets added is the full size of the disk
instead of the limited size.  So enforce the limited size on all disks
passed in at mkfs time, otherwise our threshold calculations end up wonky
when doing chunk allocations.  Thanks,

Signed-off-by: Josef Bacik <josef@redhat.com>
This commit is contained in:
Josef Bacik 2012-03-28 14:20:52 -04:00 committed by Chris Mason
parent cfdd42686c
commit 04609add88
2 changed files with 3 additions and 0 deletions

1
mkfs.c
View File

@ -1407,6 +1407,7 @@ int main(int ac, char **av)
close(fd); close(fd);
continue; continue;
} }
dev_block_count = block_count;
ret = btrfs_prepare_device(fd, file, zero_end, ret = btrfs_prepare_device(fd, file, zero_end,
&dev_block_count, &mixed); &dev_block_count, &mixed);
mixed = old_mixed; mixed = old_mixed;

View File

@ -555,6 +555,8 @@ int btrfs_prepare_device(int fd, char *file, int zero_end, u64 *block_count_ret,
fprintf(stderr, "unable to find %s size\n", file); fprintf(stderr, "unable to find %s size\n", file);
exit(1); exit(1);
} }
if (*block_count_ret)
block_count = min(block_count, *block_count_ret);
zero_end = 1; zero_end = 1;
if (block_count < 1024 * 1024 * 1024 && !(*mixed)) { if (block_count < 1024 * 1024 * 1024 && !(*mixed)) {