diff options
-rw-r--r-- | device_mapper/libdm-deptree.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/device_mapper/libdm-deptree.c b/device_mapper/libdm-deptree.c index bb552b679..4609796e2 100644 --- a/device_mapper/libdm-deptree.c +++ b/device_mapper/libdm-deptree.c @@ -2877,8 +2877,14 @@ int dm_tree_preload_children(struct dm_tree_node *dnode, * insufficient to remove those - only the node * encountering the table load failure is removed. */ - if (node_created && !_remove_node(child)) - return_0; + if (node_created) { + if (!_remove_node(child)) + return_0; + if (!dm_udev_wait(dm_tree_get_cookie(dnode))) + stack; + dm_tree_set_cookie(dnode, 0); + (void) _dm_tree_revert_activated(child); + } return_0; } |