diff options
author | Josef Bacik <jbacik@fusionio.com> | 2012-07-27 08:37:55 -0400 |
---|---|---|
committer | David Sterba <dsterba@suse.cz> | 2012-10-02 13:02:48 +0200 |
commit | 605e806166847872bb91831b397d58f95027975a (patch) | |
tree | 94032f0e981816e4d36a74003abb5d7c757cd226 /mkfs.c | |
parent | 45e9ec733deb73672c9bae3b1adf50f44bc8ae0c (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.c | 15 |
1 files changed, 6 insertions, 9 deletions
@@ -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); |