[libvirt] [PATCH 1/6] Enhance the streams helper to support plain file I/O
Daniel P. Berrange
berrange at redhat.com
Thu Apr 7 18:29:29 UTC 2011
On Thu, Apr 07, 2011 at 10:41:34AM -0600, Jim Fehlig wrote:
> Wen Congyang wrote:
> > At 03/24/2011 01:36 AM, Daniel P. Berrange Write:
> >
> >> The O_NONBLOCK flag doesn't work as desired on plain files
> >> or block devices. Introduce an I/O helper program that does
> >> the blocking I/O operations, communicating over a pipe that
> >> can support O_NONBLOCK
> >>
> >> * src/fdstream.c, src/fdstream.h: Add non-blocking I/O
> >> on plain files/block devices
> >> * src/Makefile.am, src/util/iohelper.c: I/O helper program
> >> * src/qemu/qemu_driver.c, src/lxc/lxc_driver.c,
> >> src/uml/uml_driver.c, src/xen/xen_driver.c: Update for
> >> streams API change
> >> ---
> >> po/POTFILES.in | 1 +
> >> src/Makefile.am | 12 +++
> >> src/fdstream.c | 233 ++++++++++++++++++++++++++++++++++++------------
> >> src/fdstream.h | 5 +
> >> src/lxc/lxc_driver.c | 2 +-
> >> src/qemu/qemu_driver.c | 2 +-
> >> src/uml/uml_driver.c | 2 +-
> >> src/util/iohelper.c | 203 +++++++++++++++++++++++++++++++++++++++++
> >> src/xen/xen_driver.c | 2 +-
> >> 9 files changed, 402 insertions(+), 60 deletions(-)
> >> create mode 100644 src/util/iohelper.c
> >>
> >> diff --git a/po/POTFILES.in b/po/POTFILES.in
> >> index 805e5ca..12adb3e 100644
> >> --- a/po/POTFILES.in
> >> +++ b/po/POTFILES.in
> >> @@ -94,6 +94,7 @@ src/util/event_poll.c
> >> src/util/hash.c
> >> src/util/hooks.c
> >> src/util/hostusb.c
> >> +src/util/iohelper.c
> >> src/util/interface.c
> >> src/util/iptables.c
> >> src/util/json.c
> >> diff --git a/src/Makefile.am b/src/Makefile.am
> >> index c3729a6..1d8115b 100644
> >> --- a/src/Makefile.am
> >> +++ b/src/Makefile.am
> >> @@ -380,6 +380,9 @@ STORAGE_DRIVER_DISK_SOURCES = \
> >> STORAGE_HELPER_DISK_SOURCES = \
> >> storage/parthelper.c
> >>
> >> +UTIL_IO_HELPER_SOURCES = \
> >> + util/iohelper.c
> >> +
> >> # Network filters
> >> NWFILTER_DRIVER_SOURCES = \
> >> nwfilter/nwfilter_driver.h nwfilter/nwfilter_driver.c \
> >> @@ -1203,6 +1206,15 @@ EXTRA_DIST += $(LIBVIRT_QEMU_SYMBOL_FILE)
> >>
> >> libexec_PROGRAMS =
> >>
> >> +libexec_PROGRAMS += libvirt_iohelper
> >> +libvirt_iohelper_SOURCES = $(UTIL_IO_HELPER_SOURCES)
> >> +libvirt_iohelper_LDFLAGS = $(WARN_LDFLAGS) $(AM_LDFLAGS)
> >> +libvirt_iohelper_LDADD = \
> >> + libvirt_util.la \
> >> + ../gnulib/lib/libgnu.la
> >> +
> >> +libvirt_iohelper_CFLAGS = $(AM_CFLAGS)
> >> +
> >>
> >
> > Is libvirt_iohelper for libvirtd?
> >
> > libvirt_iohelper is provided by libvirt-<version>.rpm, but we still install it
> > when we build withoud libvirtd. We will meet the following problems:
> >
> > Checking for unpackaged file(s): /usr/lib/rpm/check-files /home/wency/rpmbuild/BUILDROOT/libvirt-0.9.0-1.el6.x86_64
> > error: Installed (but unpackaged) file(s) found:
> > /usr/libexec/libvirt_iohelper
> >
>
> I met the same problem and added libvirt-iohelper to our client
> package. Is it used in client-only configuration?
It is only currently used in the QEMU or storage drivers, which are
both daemon based.
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the libvir-list
mailing list