[libvirt] [PATCH 2/5] libxl: allow getting < max typed parameters
Stefan Berger
stefanb at linux.vnet.ibm.com
Wed Nov 2 18:35:09 UTC 2011
On 11/02/2011 02:00 PM, Eric Blake wrote:
> Allow the user to call with nparams too small, per API documentation.
>
> * src/libxl/libxl_driver.c
> (libxlDomainGetSchedulerParametersFlags): Allow fewer than max.
> ---
> src/libxl/libxl_driver.c | 22 ++++++++++------------
> 1 files changed, 10 insertions(+), 12 deletions(-)
>
> diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
> index d324632..06dfe0a 100644
> --- a/src/libxl/libxl_driver.c
> +++ b/src/libxl/libxl_driver.c
> @@ -3631,11 +3631,6 @@ libxlDomainGetSchedulerParametersFlags(virDomainPtr dom,
> goto cleanup;
> }
>
> - if (*nparams< XEN_SCHED_CREDIT_NPARAM) {
> - libxlError(VIR_ERR_INVALID_ARG, "%s", _("Invalid parameter count"));
> - goto cleanup;
> - }
> -
> if (libxl_sched_credit_domain_get(&priv->ctx, dom->id,&sc_info) != 0) {
> libxlError(VIR_ERR_INTERNAL_ERROR,
> _("Failed to get scheduler parameters for domain '%d'"
> @@ -3651,15 +3646,18 @@ libxlDomainGetSchedulerParametersFlags(virDomainPtr dom,
> goto cleanup;
> }
>
> - params[1].value.ui = sc_info.cap;
> - params[1].type = VIR_TYPED_PARAM_UINT;
> - if (virStrcpyStatic(params[1].field, "cap") == NULL) {
> - libxlError(VIR_ERR_INTERNAL_ERROR,
> - "%s", _("Field cap too long for destination"));
> - goto cleanup;
> + if (*nparams> 1) {
> + params[1].value.ui = sc_info.cap;
> + params[1].type = VIR_TYPED_PARAM_UINT;
> + if (virStrcpyStatic(params[1].field, "cap") == NULL) {
I remember this one here:
VIR_DOMAIN_SCHEDULER_CAP
Is this the same one ? If so, maybe you want to replace it.
> + libxlError(VIR_ERR_INTERNAL_ERROR,
> + "%s", _("Field cap too long for destination"));
Also, would it be worth doing the same here as you did in the other
patches using "%s" in place of 'cap'?
> + goto cleanup;
> + }
> }
>
> - *nparams = XEN_SCHED_CREDIT_NPARAM;
> + if (*nparams> XEN_SCHED_CREDIT_NPARAM)
> + *nparams = XEN_SCHED_CREDIT_NPARAM;
> ret = 0;
>
> cleanup:
More information about the libvir-list
mailing list