aboutsummaryrefslogtreecommitdiffstats
path: root/extras/mini-os
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2010-04-12 18:05:04 +0100
committerKeir Fraser <keir.fraser@citrix.com>2010-04-12 18:05:04 +0100
commite07d44a360406637957e377a8d37d5d0b1489d3d (patch)
tree73ed3cb72da3d94a7368165e5fd46a5133061147 /extras/mini-os
parentb60d608f134ee02defdafa04602c1e286e56fa1f (diff)
downloadxen-e07d44a360406637957e377a8d37d5d0b1489d3d.tar.gz
xen-e07d44a360406637957e377a8d37d5d0b1489d3d.tar.bz2
xen-e07d44a360406637957e377a8d37d5d0b1489d3d.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> xen-unstable changeset: 21115:6c833a9ee3c4 xen-unstable date: Wed Apr 07 08:17:21 2010 +0100
Diffstat (limited to 'extras/mini-os')
-rw-r--r--extras/mini-os/xenbus/xenbus.c4
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);