Currently, if a sheepdog server exits, all the connecting VMs need to be restarted. This series implements a feature to reconnect the server, and enables us to do online sheepdog upgrade and avoid restarting VMs when sheepdog servers crash unexpectedly.
MORITA Kazutaka (11): ignore SIGPIPE in qemu-img and qemu-io iov: handle eof in iov_send_recv qemu-sockets: make wait_for_connect be invoked in qemu_aio_wait sheepdog: make connect nonblocking sheepdog: check return values of qemu_co_recv/send correctly sheepdog: handle vdi objects in resend_aio_req sheepdog: reload inode outside of resend_aioreq coroutine: add co_aio_sleep_ns() to allow sleep in block drivers sheepdog: try to reconnect to sheepdog after network error sheepdog: make add_aio_request and send_aioreq void functions sheepdog: cancel aio requests if possible Makefile | 4 +- block/sheepdog.c | 314 ++++++++++++++++++++++++++++++++-------------- include/block/coroutine.h | 8 ++ qemu-coroutine-sleep.c | 47 +++++++ qemu-img.c | 4 + qemu-io.c | 4 + util/iov.c | 6 + util/qemu-sockets.c | 15 ++- 8 files changed, 303 insertions(+), 99 deletions(-) -- 1.8.1.3.566.gaa39828