|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v5 06/21] libxl: write qemu arguments into separate xenstore keys
Jason Andryuk writes ("[PATCH v5 06/21] libxl: write qemu arguments into
separate xenstore keys"):
> +static int libxl__write_stub_linux_dmargs(libxl__gc *gc,
> + int dm_domid, int guest_domid,
> + char **args)
> +{
...
> + vm_path = libxl__xs_read(gc, XBT_NULL, GCSPRINTF("/local/domain/%d/vm",
> guest_domid));
> + path = GCSPRINTF("%s/image/dmargs", vm_path);
> +
> +retry_transaction:
> + t = xs_transaction_start(ctx->xsh);
> + xs_write(ctx->xsh, t, path, "", 0);
> + xs_set_permissions(ctx->xsh, t, path, roperm, ARRAY_SIZE(roperm));
This wants to be libxl__xs_mknod I think ?
> + i = 1;
> + for (i=1; args[i] != NULL; i++)
> + xs_write(ctx->xsh, t, GCSPRINTF("%s/%03d", path, i), args[i],
> strlen(args[i]));
Can you do this with libxl__xs_transaction_* please, and a loop rather
than a goto ?
Why not use libxl__xs_write_checked ?
> + xs_set_permissions(ctx->xsh, t, GCSPRINTF("%s/rtc/timeoffset", vm_path),
> roperm, ARRAY_SIZE(roperm));
This line seems out of place. At least, it is not mentioned in the
commit message. If it's needed, can you please split it out - and, of
course, then, provide an explanation :-).
> + if (!xs_transaction_end(ctx->xsh, t, 0))
> + if (errno == EAGAIN)
> + goto retry_transaction;
> + return 0;
Thanks,
Ian.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |