diff -r 8f66a16efee0 tools/libxl/libxl.c --- a/tools/libxl/libxl.c Tue Nov 02 16:08:56 2010 +0100 +++ b/tools/libxl/libxl.c Thu Nov 04 16:30:27 2010 +0100 @@ -2787,17 +2787,15 @@ retry_transaction: rc = ERROR_FAIL; goto out; } - rc = 0; - goto out; } rc = libxl_domain_info(ctx, &info, 0); if (rc < 0) - return rc; + goto out; rc = libxl_get_physinfo(ctx, &physinfo); if (rc < 0) - return rc; + goto out; libxl__xs_write(gc, t, target_path, "%"PRIu32, (uint32_t) info.current_memkb); @@ -2816,10 +2814,12 @@ retry_transaction: rc = 0; out: - if (!xs_transaction_end(ctx->xsh, t, 0)) + if (!xs_transaction_end(ctx->xsh, t, 0)) { if (errno == EAGAIN) goto retry_transaction; - + else + rc = ERROR_FAIL; + } return rc; }