From 68085c93b01e59bda727796a6c34cbd9d401a669 Mon Sep 17 00:00:00 2001 From: Mike Snitzer Date: Tue, 5 Jan 2010 21:05:40 +0000 Subject: [PATCH] Return error to dm_tree_suspend_children() callers. Otherwise suspend_lv and its variants can fail silently. Signed-off-by: Mike Snitzer --- libdm/libdm-deptree.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libdm/libdm-deptree.c b/libdm/libdm-deptree.c index 90b1202ec..927d22089 100644 --- a/libdm/libdm-deptree.c +++ b/libdm/libdm-deptree.c @@ -1067,6 +1067,7 @@ int dm_tree_suspend_children(struct dm_tree_node *dnode, const char *uuid_prefix, size_t uuid_prefix_len) { + int r = 1; void *handle = NULL; struct dm_tree_node *child = dnode; struct dm_info info, newinfo; @@ -1109,6 +1110,7 @@ int dm_tree_suspend_children(struct dm_tree_node *dnode, log_error("Unable to suspend %s (%" PRIu32 ":%" PRIu32 ")", name, info.major, info.minor); + r = 0; continue; } @@ -1130,10 +1132,11 @@ int dm_tree_suspend_children(struct dm_tree_node *dnode, continue; if (dm_tree_node_num_children(child, 0)) - dm_tree_suspend_children(child, uuid_prefix, uuid_prefix_len); + if (!dm_tree_suspend_children(child, uuid_prefix, uuid_prefix_len)) + return_0; } - return 1; + return r; } int dm_tree_activate_children(struct dm_tree_node *dnode,