[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2 1/7] xenstore: fix add_change_node()
add_change_node() in xenstored is used to add a modified node to the list of changed nodes of one transaction. It is being called with the recurse parameter set to true when removing a node in order to get watches for children of the node fired at transaction end, too. If, however, the node to be deleted had been modified in the same transaction the recurse parameter of add_change_node() is lost as an entry already in the list of the changed nodes won't be entered again. Signed-off-by: Juergen Gross <jgross@xxxxxxxx> --- Candidate for backport --- tools/xenstore/xenstored_transaction.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/xenstore/xenstored_transaction.c b/tools/xenstore/xenstored_transaction.c index 34720fa..3c0b8f7 100644 --- a/tools/xenstore/xenstored_transaction.c +++ b/tools/xenstore/xenstored_transaction.c @@ -103,8 +103,11 @@ void add_change_node(struct transaction *trans, const char *node, bool recurse) } list_for_each_entry(i, &trans->changes, list) - if (streq(i->node, node)) + if (streq(i->node, node)) { + if (recurse) + i->recurse = recurse; return; + } i = talloc(trans, struct changed_node); i->node = talloc_strdup(i, node); -- 2.6.6 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |