diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2010-04-07 08:17:21 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2010-04-07 08:17:21 +0100 |
commit | cdabe14bff38e2e9e8dac9ad5d5fe40499cc38e8 (patch) | |
tree | 29df1d2b65bbfb6d3c3e302735920fe4cad4dd78 /extras/mini-os/xenbus | |
parent | 15d5739ea96c83a989c31e5f28436004cf831035 (diff) | |
download | xen-cdabe14bff38e2e9e8dac9ad5d5fe40499cc38e8.tar.gz xen-cdabe14bff38e2e9e8dac9ad5d5fe40499cc38e8.tar.bz2 xen-cdabe14bff38e2e9e8dac9ad5d5fe40499cc38e8.zip |
mini-os: Fix xenbus_switch_state's transaction retry
When xenbus_switch_state has to retry the transaction which it just
created, it needs to recreate another one. Clearing xbt triggers it.
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Diffstat (limited to 'extras/mini-os/xenbus')
-rw-r--r-- | extras/mini-os/xenbus/xenbus.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/extras/mini-os/xenbus/xenbus.c b/extras/mini-os/xenbus/xenbus.c index 22f109fd07..a8081fd943 100644 --- a/extras/mini-os/xenbus/xenbus.c +++ b/extras/mini-os/xenbus/xenbus.c @@ -154,8 +154,10 @@ char *xenbus_switch_state(xenbus_transaction_t xbt, const char* path, XenbusStat msg = xenbus_write(xbt, path, value); exit: - if (xbt_flag) + if (xbt_flag) { msg2 = xenbus_transaction_end(xbt, 0, &retry); + xbt = XBT_NIL; + } if (msg == NULL && msg2 != NULL) msg = msg2; } while (retry); |