summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--utils.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/utils.c b/utils.c
index e164fdd5..8a5c63e7 100644
--- a/utils.c
+++ b/utils.c
@@ -1219,8 +1219,21 @@ int make_btrfs(int fd, struct btrfs_mkfs_config *cfg,
if (!skinny_metadata)
item_size += sizeof(struct btrfs_tree_block_info);
- BUG_ON(cfg->blocks[i] < first_free);
- BUG_ON(cfg->blocks[i] < cfg->blocks[i - 1]);
+ if (cfg->blocks[i] < first_free) {
+ error("block[%d] below first free: %llu < %llu",
+ i, (unsigned long long)cfg->blocks[i],
+ (unsigned long long)first_free);
+ ret = -EINVAL;
+ goto out;
+ }
+ if (cfg->blocks[i] < cfg->blocks[i - 1]) {
+ error("blocks %d and %d in reverse order: %llu < %llu",
+ i, i - 1,
+ (unsigned long long)cfg->blocks[i],
+ (unsigned long long)cfg->blocks[i - 1]);
+ ret = -EINVAL;
+ goto out;
+ }
/* create extent item */
itemoff -= item_size;