diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2010-04-12 18:05:04 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2010-04-12 18:05:04 +0100 |
commit | e07d44a360406637957e377a8d37d5d0b1489d3d (patch) | |
tree | 73ed3cb72da3d94a7368165e5fd46a5133061147 /extras/mini-os | |
parent | b60d608f134ee02defdafa04602c1e286e56fa1f (diff) | |
download | xen-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.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); |