Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Evergreen:11.2:Test
kvm
kvm-qemu-preXX-write-full.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File kvm-qemu-preXX-write-full.patch of Package kvm
commit 7b5f699dbdf64cf9657e2955bccccc173d9b09fc Author: Kirill A. Shutemov <kirill@shutemov.name> Date: Wed Jan 20 00:56:08 2010 +0100 Introduce qemu_write_full() A variant of write(2) which handles partial write. Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name> Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> Index: qemu-kvm-0.12.5/osdep.c =================================================================== --- qemu-kvm-0.12.5.orig/osdep.c +++ qemu-kvm-0.12.5/osdep.c @@ -256,6 +256,33 @@ int qemu_open(const char *name, int flag return ret; } +/* + * A variant of write(2) which handles partial write. + * + * Return the number of bytes transferred. + * Set errno if fewer than `count' bytes are written. + */ +ssize_t qemu_write_full(int fd, const void *buf, size_t count) +{ + ssize_t ret = 0; + ssize_t total = 0; + + while (count) { + ret = write(fd, buf, count); + if (ret < 0) { + if (errno == EINTR) + continue; + break; + } + + count -= ret; + buf += ret; + total += ret; + } + + return total; +} + #ifndef _WIN32 /* * Creates a pipe with FD_CLOEXEC set on both file descriptors Index: qemu-kvm-0.12.5/qemu-common.h =================================================================== --- qemu-kvm-0.12.5.orig/qemu-common.h +++ qemu-kvm-0.12.5/qemu-common.h @@ -165,6 +165,7 @@ void qemu_mutex_lock_iothread(void); void qemu_mutex_unlock_iothread(void); int qemu_open(const char *name, int flags, ...); +ssize_t qemu_write_full(int fd, const void *buf, size_t count); void qemu_set_cloexec(int fd); #ifndef _WIN32
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor