diff options
author | kfraser@localhost.localdomain <kfraser@localhost.localdomain> | 2007-05-30 10:04:23 +0100 |
---|---|---|
committer | kfraser@localhost.localdomain <kfraser@localhost.localdomain> | 2007-05-30 10:04:23 +0100 |
commit | 29dd27927cb9cff9e97e1e6b6b25a425c30e238d (patch) | |
tree | 46e0e20e50894706f38b381b75d221af8e479deb /tools/xenstore/xenstored_transaction.h | |
parent | 57e9895926c04bc586b249f4dd103c052f7a784d (diff) | |
download | xen-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.h | 4 |
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); |