aboutsummaryrefslogtreecommitdiffstats
path: root/extras/mini-os/fs-front.c
diff options
context:
space:
mode:
Diffstat (limited to 'extras/mini-os/fs-front.c')
-rw-r--r--extras/mini-os/fs-front.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/extras/mini-os/fs-front.c b/extras/mini-os/fs-front.c
index 59b240440b..e959e3af2d 100644
--- a/extras/mini-os/fs-front.c
+++ b/extras/mini-os/fs-front.c
@@ -1103,6 +1103,7 @@ again:
err = xenbus_transaction_start(&xbt);
if (err) {
printk("starting transaction\n");
+ free(err);
}
err = xenbus_printf(xbt,
@@ -1140,9 +1141,10 @@ again:
}
err = xenbus_printf(xbt, nodename, "state", STATE_READY, 0xdeadbeef);
+ if (err) free(err);
-
err = xenbus_transaction_end(xbt, 0, &retry);
+ if (err) free(err);
if (retry) {
goto again;
printk("completing transaction\n");
@@ -1159,7 +1161,9 @@ again:
goto done;
abort_transaction:
- xenbus_transaction_end(xbt, 1, &retry);
+ free(err);
+ err = xenbus_transaction_end(xbt, 1, &retry);
+ if (err) free(err);
done:
@@ -1189,7 +1193,8 @@ done:
sprintf(token, "fs-front-%d", import->import_id);
/* The token will not be unique if multiple imports are inited */
xenbus_watch_path_token(XBT_NIL, r_nodename, r_nodename, &events);
- xenbus_wait_for_value(r_nodename, STATE_READY, &events);
+ err = xenbus_wait_for_value(r_nodename, STATE_READY, &events);
+ if (err) free(err);
xenbus_unwatch_path_token(XBT_NIL, r_nodename, r_nodename);
printk("Backend ready.\n");