[libvirt] [PATCH 1/3] virfile: Provide stub for virFileInData
Daniel P. Berrange
berrange at redhat.com
Fri May 19 12:00:31 UTC 2017
On Fri, May 19, 2017 at 01:31:32PM +0200, Michal Privoznik wrote:
> On 05/19/2017 12:28 PM, Peter Krempa wrote:
> > On Thu, May 18, 2017 at 15:46:44 +0200, Michal Privoznik wrote:
> >> Some older systems (such as RHEL6) lack SEEK_HOLE and SEEK_DATA
> >> which virFileInData relies on. Provide a stub for these systems.
> >>
> >> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> >> ---
> >> configure.ac | 5 +++++
> >> src/util/virfile.c | 15 +++++++++++++++
> >> 2 files changed, 20 insertions(+)
> >
> > [...]
> >
> >> @@ -3904,6 +3905,20 @@ virFileInData(int fd,
> >> return ret;
> >> }
> >>
> >> +#else /* !HAVE_DECL_SEEK_HOLE */
> >> +
> >> +int
> >> +virFileInData(int fd ATTRIBUTE_UNUSED,
> >> + int *inData ATTRIBUTE_UNUSED,
> >> + long long *length ATTRIBUTE_UNUSED)
> >> +{
> >> + virReportSystemError(ENOSYS, "%s",
> >> + _("sparse files not supported"));
> >> + return -1;
> >
> > Wouldn't it be better as a fallback always return that data is present
> > rather than failing?
> >
>
> I don't think so. What I can do actually is to not only report error,
> but also set errno = ENOSYS, so that caller can distinguish this case
> from other cases where virFileInData fails. I think we should let it up
> to the caller to decide then whether they want to ignore the error (and
> pretend there are no holes), or fail too. More generally, helpers in
> src/util/ should really be one purpose functions without trying to be
> clever and leave the logic for callers (drivers).
In particular by reporting an error we give options to the mgmt application.
They may well *not* want to do the upload/download if there is no sparse
support. By reporting an error they can detect that and make a decision
as to whether to retry without sparse flag enabled or not.
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
More information about the libvir-list
mailing list