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