From 93a34924e134500b4b770168c366e75903315b9e Mon Sep 17 00:00:00 2001 From: David Sterba Date: Tue, 6 Sep 2016 14:07:25 +0200 Subject: btrfs-progs: convert: improve error handling in create_image_file_range Signed-off-by: David Sterba --- btrfs-convert.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'btrfs-convert.c') diff --git a/btrfs-convert.c b/btrfs-convert.c index 5175f1f7..6a7ea5cd 100644 --- a/btrfs-convert.c +++ b/btrfs-convert.c @@ -424,8 +424,16 @@ static int create_image_file_range(struct btrfs_trans_handle *trans, int i; int ret; - BUG_ON(bytenr != round_down(bytenr, root->sectorsize)); - BUG_ON(len != round_down(len, root->sectorsize)); + if (bytenr != round_down(bytenr, root->sectorsize)) { + error("bytenr not sectorsize aligned: %llu", + (unsigned long long)bytenr); + return -EINVAL; + } + if (len != round_down(len, root->sectorsize)) { + error("length not sectorsize aligned: %llu", + (unsigned long long)len); + return -EINVAL; + } len = min_t(u64, len, BTRFS_MAX_EXTENT_SIZE); /* @@ -514,7 +522,11 @@ static int create_image_file_range(struct btrfs_trans_handle *trans, bg_cache->key.offset - bytenr); } - BUG_ON(len != round_down(len, root->sectorsize)); + if (len != round_down(len, root->sectorsize)) { + error("remaining length not sectorsize aligned: %llu", + (unsigned long long)len); + return -EINVAL; + } ret = btrfs_record_file_extent(trans, root, ino, inode, bytenr, disk_bytenr, len); if (ret < 0) -- cgit v1.2.3