Version 2.02.68 -
===============================
+ Use early udev synchronisation and update of dev nodes for clustered mirrors.
Unneeded kdev_t.h reference causing harm for cmirrord on some archs.
Add man pages for lvmconf and unsupported lvmsadc and lvmsar tools.
Fix exit code when requesting help using documented -o help option.
struct dm_list segs;
const char *new_name;
+
+ /* If immediate_dev_node is set to 1, try to create the dev node
+ * as soon as possible (e.g. in preload stage even during traversal
+ * and processing of dm tree). This will also flush all stacked dev
+ * node operations, synchronizing with udev.
+ */
+ int immediate_dev_node;
};
/* Two of these used to join two nodes with uses and used_by. */
void *handle = NULL;
struct dm_tree_node *child;
struct dm_info newinfo;
+ int update_devs_flag = 0;
/* Preload children first */
while ((child = dm_tree_next_child(&handle, dnode, 0))) {
/* Update cached info */
child->info = newinfo;
+
+ /*
+ * Prepare for immediate synchronization with udev and flush all stacked
+ * dev node operations if requested by immediate_dev_node property. But
+ * finish processing current level in the tree first.
+ */
+ if (child->props.immediate_dev_node)
+ update_devs_flag = 1;
+
}
handle = NULL;
+ if (update_devs_flag) {
+ if (!dm_udev_wait(dm_tree_get_cookie(dnode)))
+ stack;
+ dm_tree_set_cookie(dnode, 0);
+ dm_task_update_nodes();
+ }
+
return r;
}
return 0;
}
+ if (clustered)
+ log_node->props.immediate_dev_node = 1;
+
if (!_link_tree_nodes(node, log_node))
return_0;
}