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 :|