summaryrefslogtreecommitdiff
path: root/mkfs.c
diff options
context:
space:
mode:
authorJosef Bacik <jbacik@fusionio.com>2012-07-27 08:37:55 -0400
committerDavid Sterba <dsterba@suse.cz>2012-10-02 13:02:48 +0200
commit605e806166847872bb91831b397d58f95027975a (patch)
tree94032f0e981816e4d36a74003abb5d7c757cd226 /mkfs.c
parent45e9ec733deb73672c9bae3b1adf50f44bc8ae0c (diff)
Btrfs-progs: only enforce a maximum size if we specify one
My patch 04609add88ef8428d725de6ef60f46a3ff0dbc8e introduced a regression where if you mkfs'ed a group of disks with different sizes it limited the disks to the size of the first one that is specified. This was not the intent of my patch, I only want it to limit the size based on the -b option, so I've reworked the code to pass in a max block count and that fixes the issue. Thanks, Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Diffstat (limited to 'mkfs.c')
-rw-r--r--mkfs.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/mkfs.c b/mkfs.c
index 394a6228..4e2535d3 100644
--- a/mkfs.c
+++ b/mkfs.c
@@ -1324,11 +1324,9 @@ int main(int ac, char **av)
exit(1);
}
first_file = file;
- ret = __btrfs_prepare_device(fd, file, zero_end,
- &dev_block_count, &mixed, nodiscard);
- if (block_count == 0)
- block_count = dev_block_count;
- else if (block_count > dev_block_count) {
+ ret = btrfs_prepare_device(fd, file, zero_end, &dev_block_count,
+ block_count, &mixed, nodiscard);
+ if (block_count && block_count > dev_block_count) {
fprintf(stderr, "%s is smaller than requested size\n", file);
exit(1);
}
@@ -1366,7 +1364,7 @@ int main(int ac, char **av)
leafsize * i;
}
- ret = make_btrfs(fd, file, label, blocks, block_count,
+ ret = make_btrfs(fd, file, label, blocks, dev_block_count,
nodesize, leafsize,
sectorsize, stripesize);
if (ret) {
@@ -1422,9 +1420,8 @@ int main(int ac, char **av)
close(fd);
continue;
}
- dev_block_count = block_count;
- ret = __btrfs_prepare_device(fd, file, zero_end,
- &dev_block_count, &mixed, nodiscard);
+ ret = btrfs_prepare_device(fd, file, zero_end, &dev_block_count,
+ block_count, &mixed, nodiscard);
mixed = old_mixed;
BUG_ON(ret);