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.
v2: - Dropped nonblocking connect patches MORITA Kazutaka (9): ignore SIGPIPE in qemu-img and qemu-io iov: handle EOF in iov_send_recv 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 block/sheepdog.c | 244 ++++++++++++++++++++++++++++++---------------- include/block/coroutine.h | 8 ++ qemu-coroutine-sleep.c | 47 +++++++++ qemu-img.c | 4 + qemu-io.c | 4 + util/iov.c | 6 ++ 6 files changed, 228 insertions(+), 85 deletions(-) -- 1.8.1.3.566.gaa39828