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

Re: [libvirt] [PATCH 3/6] Clarify that virDomainSetSchedulerParameters(Flags) can take subset



On 05/18/2011 04:21 AM, Matthias Bolte wrote:
> Add invalid argument checks for params and nparams to the public API
> and remove the from the drivers (e.g. xend).
> 
> Add subset handling to libxl and test drivers.

> @@ -5092,6 +5092,12 @@ virDomainSetSchedulerParameters(virDomainPtr domain,
>          virDispatchError(NULL);
>          return -1;
>      }
> +
> +    if (params == NULL || nparams < 0) {

So this documents that nparams should be in the closed range [1, max]...

> @@ -2683,20 +2683,19 @@ static int testDomainSetSchedulerParams(virDomainPtr domain,
>          goto cleanup;
>      }
>  
> -    if (nparams != 1) {
> -        testError(VIR_ERR_INVALID_ARG, "nparams");
> -        goto cleanup;
> -    }
> -    if (STRNEQ(params[0].field, "weight")) {
> -        testError(VIR_ERR_INVALID_ARG, "field");
> -        goto cleanup;
> -    }
> -    if (params[0].type != VIR_DOMAIN_SCHED_FIELD_UINT) {
> -        testError(VIR_ERR_INVALID_ARG, "type");
> -        goto cleanup;
> +    for (i = 0; i < nparams; i++) {
> +        if (STRNEQ(params[i].field, "weight")) {

Hmm, this change lets us pass an array of two separate weight changes,
the last one wins, whereas prepatch the maximum was 1, so you could not
pass two duplicate weights.

> +++ b/src/xen/xen_hypervisor.c
> @@ -1364,10 +1364,9 @@ xenHypervisorSetSchedulerParameters(virDomainPtr domain,
>          return -1;
>      }
>  
> -    if ((nparams == 0) || (params == NULL)) {
> -        virXenErrorFunc(VIR_ERR_INVALID_ARG, __FUNCTION__,
> -                        "Noparameters given", 0);
> -        return(-1);
> +    if (nparams == 0) {
> +        /* nothing to do, exit early */
> +        return 0;

Given the public check that nparams is not less than 1, this is now dead
code.

-- 
Eric Blake   eblake redhat com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


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