[libvirt] [PATCH 1/6] Enhance the streams helper to support plain file I/O

Wen Congyang wency at cn.fujitsu.com
Thu Apr 7 08:42:40 UTC 2011


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


>  if WITH_STORAGE_DISK
>  if WITH_LIBVIRTD
>  libexec_PROGRAMS += libvirt_parthelper




More information about the libvir-list mailing list