Wang Shilong
2013-Jul-19 06:31 UTC
[PATCH] Btrfs-progs: make btrfs-map-logical handle error gracefully
If an overflow logical address is passed(for example),the original code will cause segmentation, this is unfriendly to users,fix it. Signed-off-by: Wang Shilong<wangsl.fnst@cn.fujitsu.com> --- btrfs-map-logical.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/btrfs-map-logical.c b/btrfs-map-logical.c index b9635f7..fce6504 100644 --- a/btrfs-map-logical.c +++ b/btrfs-map-logical.c @@ -57,7 +57,14 @@ struct extent_buffer *debug_read_block(struct btrfs_root *root, u64 bytenr, ret = btrfs_map_block(&root->fs_info->mapping_tree, READ, eb->start, &length, &multi, mirror_num, NULL); - BUG_ON(ret); + if (ret) { + fprintf(info_file, + "Error: fails to map mirror%d logical %llu: %s\n", + mirror_num, (unsigned long long)eb->start, + strerror(-ret)); + free_extent_buffer(eb); + return NULL; + } device = multi->stripes[0].dev; eb->fd = device->fd; device->total_ios++; -- 1.8.0.1 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html