On Wed, 6 Jul 2011, Ian Jackson wrote:
> +static int disk_try_backend(disk_try_backend_args *a,
> +                            libxl_disk_backend backend) {
> +    /* returns 0 (ie, DISK_BACKEND_UNKNOWN) on failure, or
> +     * backend on success */
> +    libxl_ctx *ctx = libxl__gc_owner(a->gc);
> +    switch (backend) {
> +
> +    case LIBXL_DISK_BACKEND_PHY:
> +        if (!(a->disk->format == LIBXL_DISK_FORMAT_RAW ||
> +              a->disk->format == LIBXL_DISK_FORMAT_EMPTY)) {
> +            LIBXL__LOG(ctx, LIBXL__LOG_DEBUG, "Disk vdev=%s, backend phy"
> +                       " unsuitable due to format %s",
> +                       a->disk->vdev,
> +                       libxl_disk_format_to_string(a->disk->format));
> +            return 0;
> +        }
> +        if (a->disk->format != LIBXL_DISK_FORMAT_EMPTY &&
> +            !S_ISBLK(a->stab.st_mode)) {
> +            LIBXL__LOG(ctx, LIBXL__LOG_DEBUG, "Disk vdev=%s, backend phy"
> +                       " unsuitable as phys path not a block device",
> +                       a->disk->vdev);
> +            return ERROR_INVAL;
> +        }
> +
> +        return backend;
> +
> +    case LIBXL_DISK_BACKEND_TAP:
> +        if (!libxl__blktap_enabled(a->gc)) {
> +            LIBXL__LOG(ctx, LIBXL__LOG_DEBUG, "Disk vdev=%s, backend tap"
> +                       " unsuitable because blktap not available",
> +                       a->disk->vdev);
> +            return 0;
> +        }
> +        if (a->disk->format == LIBXL_DISK_FORMAT_EMPTY ||
> +            (S_ISREG(a->stab.st_mode) && !a->stab.st_size)) {
> +            LIBXL__LOG(ctx, LIBXL__LOG_DEBUG, "Disk vdev=%s, backend tap"
> +                       " unsuitable because empty devices not supported",
> +                       a->disk->vdev);
> +            return 0;
> +        }
> +        return backend;
> +
TAP should only be used for raw or vhd formats, not for qcow or qcow2.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 |