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 :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list