[libvirt] [PATCH 1/4] virDomainIOError public API and remote protocol

Jiri Denemark jdenemar at redhat.com
Fri Jan 27 10:52:09 UTC 2012


On Mon, Jan 23, 2012 at 14:30:54 +0100, Jiri Denemark wrote:
> We already provide ways to detect when a domain has been paused as a
> result of I/O error, but there was no way of getting the exact error or
> even the device that experienced it.  This new API may be used for both.
...
> +
> +/**
> + * virDomainGetIoError:
> + * @dom: a domain object
> + * @dev: disk device to be inspected or NULL
> + * @flags: extra flags; not used yet, so callers should always pass 0
> + *
> + * The @disk parameter is either the device target (the dev attribute of
> + * target subelement), such as "vda", or NULL, in which case all disks will be
> + * inspected for errors. If only one disk experienced an I/O error, that error
> + * will be returned. However, if there are more disks with I/O errors, this
> + * function will fail and return -2, requiring the caller to check every
> + * device explicitly.
> + *
> + * Returns -2 if @dev is NULL and there are multiple disks with errors, -1 if
> + * the function fails to do its job, the I/O error (virDomainIoError) observed
> + * on the specified disk (or any disk if @dev is NULL). Namely, 0 is returned
> + * when there is no error on the disk.
> + */
> +int
> +virDomainGetIoError(virDomainPtr dom,
> +                    const char *dev,
> +                    unsigned int flags)

Actually, after talking a bit more about this with Federico on IRC, this API
should rather provide a list of disks with error codes.

I'll create a v2, in which I will also address Michal's comments.

Jirka




More information about the libvir-list mailing list