diff options
-rw-r--r-- | mkfs/common.c | 4 | ||||
-rw-r--r-- | mkfs/common.h | 2 | ||||
-rw-r--r-- | mkfs/main.c | 10 |
3 files changed, 9 insertions, 7 deletions
diff --git a/mkfs/common.c b/mkfs/common.c index c9ce10d4..71318b10 100644 --- a/mkfs/common.c +++ b/mkfs/common.c @@ -698,7 +698,7 @@ int is_vol_small(const char *file) } } -int test_minimum_size(const char *file, u32 nodesize) +int test_minimum_size(const char *file, u64 min_dev_size) { int fd; struct stat statbuf; @@ -710,7 +710,7 @@ int test_minimum_size(const char *file, u32 nodesize) close(fd); return -errno; } - if (btrfs_device_size(fd, &statbuf) < btrfs_min_dev_size(nodesize)) { + if (btrfs_device_size(fd, &statbuf) < min_dev_size) { close(fd); return 1; } diff --git a/mkfs/common.h b/mkfs/common.h index dee0ea97..3757e9e7 100644 --- a/mkfs/common.h +++ b/mkfs/common.h @@ -68,7 +68,7 @@ struct btrfs_mkfs_config { int make_btrfs(int fd, struct btrfs_mkfs_config *cfg); u64 btrfs_min_dev_size(u32 nodesize); u64 btrfs_min_global_blk_rsv_size(u32 nodesize); -int test_minimum_size(const char *file, u32 nodesize); +int test_minimum_size(const char *file, u64 min_dev_size); int is_vol_small(const char *file); int test_num_disk_vs_raid(u64 metadata_profile, u64 data_profile, u64 dev_cnt, int mixed, int ssd); diff --git a/mkfs/main.c b/mkfs/main.c index 7d9fa38c..a69a699f 100644 --- a/mkfs/main.c +++ b/mkfs/main.c @@ -1453,6 +1453,7 @@ int main(int argc, char **argv) u64 num_of_meta_chunks = 0; u64 size_of_data = 0; u64 source_dir_size = 0; + u64 min_dev_size; int dev_cnt = 0; int saved_optind; char fs_uuid[BTRFS_UUID_UNPARSED_SIZE] = { 0 }; @@ -1663,19 +1664,20 @@ int main(int argc, char **argv) goto error; } + min_dev_size = btrfs_min_dev_size(nodesize); /* Check device/block_count after the nodesize is determined */ - if (block_count && block_count < btrfs_min_dev_size(nodesize)) { + if (block_count && block_count < min_dev_size) { error("size %llu is too small to make a usable filesystem", block_count); error("minimum size for btrfs filesystem is %llu", - btrfs_min_dev_size(nodesize)); + min_dev_size); goto error; } for (i = saved_optind; i < saved_optind + dev_cnt; i++) { char *path; path = argv[i]; - ret = test_minimum_size(path, nodesize); + ret = test_minimum_size(path, min_dev_size); if (ret < 0) { error("failed to check size for %s: %s", path, strerror(-ret)); @@ -1685,7 +1687,7 @@ int main(int argc, char **argv) error("'%s' is too small to make a usable filesystem", path); error("minimum size for each btrfs device is %llu", - btrfs_min_dev_size(nodesize)); + min_dev_size); goto error; } } |