]> sourceware.org Git - lvm2.git/commitdiff
Return error to dm_tree_deactivate_children() callers.
authorMike Snitzer <snitzer@redhat.com>
Tue, 5 Jan 2010 21:06:26 +0000 (21:06 +0000)
committerMike Snitzer <snitzer@redhat.com>
Tue, 5 Jan 2010 21:06:26 +0000 (21:06 +0000)
Otherwise deactivate_lv can fail silently.

Signed-off-by: Mike Snitzer <snitzer@redhat.com>
libdm/libdm-deptree.c

index 927d22089a227e2f6ec7d2b52256713bcd82059e..0128217a15b44d4a248f0f77f9ff994429fe1ef1 100644 (file)
@@ -1006,6 +1006,7 @@ int dm_tree_deactivate_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;
@@ -1043,14 +1044,16 @@ int dm_tree_deactivate_children(struct dm_tree_node *dnode,
                        log_error("Unable to deactivate %s (%" PRIu32
                                  ":%" PRIu32 ")", name, info.major,
                                  info.minor);
+                       r = 0;
                        continue;
                }
 
                if (dm_tree_node_num_children(child, 0))
-                       dm_tree_deactivate_children(child, uuid_prefix, uuid_prefix_len);
+                       if (!dm_tree_deactivate_children(child, uuid_prefix, uuid_prefix_len))
+                               return_0;
        }
 
-       return 1;
+       return r;
 }
 
 void dm_tree_skip_lockfs(struct dm_tree_node *dnode)
This page took 0.035946 seconds and 5 git commands to generate.