From a684497b3d618ae5d01e6b0b1aae64e406b2430b Mon Sep 17 00:00:00 2001 From: Jonathan Earl Brassow Date: Thu, 11 Aug 2011 19:38:00 +0000 Subject: [PATCH] Add missing checks for function return codes. Some functions were being called without having their return values checked. --- lib/activate/dev_manager.c | 5 +++-- lib/metadata/lv_manip.c | 17 +++++++++++++---- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/lib/activate/dev_manager.c b/lib/activate/dev_manager.c index c5b377d60..3280fd658 100644 --- a/lib/activate/dev_manager.c +++ b/lib/activate/dev_manager.c @@ -1233,8 +1233,9 @@ int add_areas_line(struct dev_manager *dm, struct lv_segment *seg, NULL); if (!dlid) return_0; - dm_tree_node_add_target_area(node, NULL, dlid, - extent_size * seg_metale(seg, s)); + if (!dm_tree_node_add_target_area(node, NULL, dlid, + extent_size * seg_metale(seg, s))) + return_0; } if (!(dlid = build_dm_uuid(dm->mem, seg_lv(seg, s)->lvid.s, NULL))) return_0; diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c index 3fe788d72..4c52c7e58 100644 --- a/lib/metadata/lv_manip.c +++ b/lib/metadata/lv_manip.c @@ -312,13 +312,22 @@ void release_lv_segment_area(struct lv_segment *seg, uint32_t s, if (area_reduction != seg->area_len) { log_error("Unable to reduce RAID LV - operation not implemented."); return; - } else - lv_remove(seg_lv(seg, s)); + } else { + if (!lv_remove(seg_lv(seg, s))) { + log_error("Failed to remove RAID image %s", + seg_lv(seg, s)->name); + return; + } + } /* Remove metadata area if image has been removed */ if (area_reduction == seg->area_len) { - lv_reduce(seg_metalv(seg, s), - seg_metalv(seg, s)->le_count); + if (!lv_reduce(seg_metalv(seg, s), + seg_metalv(seg, s)->le_count)) { + log_error("Failed to remove RAID meta-device %s", + seg_metalv(seg, s)->name); + return; + } } return; } -- 2.43.5