[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v4 2/5] libxl: Fix libxl_set_memory_target return value

George Dunlap writes ("[PATCH v4 2/5] libxl: Fix libxl_set_memory_target return 
> 2. Use 'r' for return values to functions whose return values are a
> different error space (like xc_domain_setmaxmem and
> xc_domain_set_pod_target), or where a failure means retry, rather than
> fail the whole function (libxl__fill_dom0_memory_info), to reduce the
> risk that

The use of `r' to contain libxl__fill_dom0_memory_info's return value
is IMO confusing and contrary to CODING_STYLE.

Sorry that I didn't spot this last sentence in your point `2' when
reading ijc's review of your v3, where ijc suggested `r'.

> v4:
>  - Use 'r' instead of 'lrc'

Can you go back to `lrc' for just that one use ?  I think that would
be analogous with CODING_STYLE's suggestion to use `rc' for libxl
error codes.

>          abort_transaction = 1;
> +        rc = ERROR_FAIL;

There is an awful lot of this.  I won't object to this in your patch,
as what you have is an improvement, but:

Every `goto out' here is preceded by `abort_transaction = 1'.

If you converted this function to:
  - use libxl__xs_transaction_start et al
  - in the intended pattern as shown in its doc comment
  - use the `out' path only for errors
  - unconditionally call libxl__xs_transaction_abort in the out
  - call libxl__xs_transaction_commit in the success path

Then you could abolish `abort_transaction' and remove all assignments
to it.  You could also abolish `out_no_transaction'.

If you were feeling really gung-ho you could get rid of `goto retry'
and replace it with a loop.


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.