aboutsummaryrefslogtreecommitdiffstats
path: root/tools/xenstore/xenstored_transaction.h
diff options
context:
space:
mode:
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-05-30 10:04:23 +0100
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-05-30 10:04:23 +0100
commit29dd27927cb9cff9e97e1e6b6b25a425c30e238d (patch)
tree46e0e20e50894706f38b381b75d221af8e479deb /tools/xenstore/xenstored_transaction.h
parent57e9895926c04bc586b249f4dd103c052f7a784d (diff)
downloadxen-29dd27927cb9cff9e97e1e6b6b25a425c30e238d.tar.gz
xen-29dd27927cb9cff9e97e1e6b6b25a425c30e238d.tar.bz2
xen-29dd27927cb9cff9e97e1e6b6b25a425c30e238d.zip
Fix xenstore entry accounting
xenstored is incorrectly accounting domain nodes when transactions fail. Store pending count changes in the transaction structure, and apply at transaction completion, instead of directly applying the changes. Signed-off-by: Max Zhen <max.zhen@sun.com>
Diffstat (limited to 'tools/xenstore/xenstored_transaction.h')
-rw-r--r--tools/xenstore/xenstored_transaction.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/tools/xenstore/xenstored_transaction.h b/tools/xenstore/xenstored_transaction.h
index ecbae47f2d..b3cc9ac4b7 100644
--- a/tools/xenstore/xenstored_transaction.h
+++ b/tools/xenstore/xenstored_transaction.h
@@ -27,6 +27,10 @@ void do_transaction_end(struct connection *conn, const char *arg);
struct transaction *transaction_lookup(struct connection *conn, uint32_t id);
+/* inc/dec entry number local to trans while changing a node */
+void transaction_entry_inc(struct transaction *trans, unsigned int domid);
+void transaction_entry_dec(struct transaction *trans, unsigned int domid);
+
/* This node was changed: can fail and longjmp. */
void add_change_node(struct transaction *trans, const char *node,
bool recurse);