[Qemu-devel] [PATCH 0/5] 9pfs: handle transport errors

Greg Kurz posted 5 patches 7 years ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/149063674781.4447.14258971700726134711.stgit@bahia.lan
Test checkpatch failed
Test docker passed
Test s390x passed
There is a newer version of this series
fsdev/9p-iov-marshal.c     |    4 +--
hw/9pfs/9p.c               |   43 +++++++++++++++++++++----------
hw/9pfs/9p.h               |    1 +
hw/9pfs/virtio-9p-device.c |   61 ++++++++++++++++++++++++++++++++------------
hw/virtio/virtio.c         |   21 ++++++++++++---
include/hw/virtio/virtio.h |    1 +
6 files changed, 93 insertions(+), 38 deletions(-)
[Qemu-devel] [PATCH 0/5] 9pfs: handle transport errors
Posted by Greg Kurz 7 years ago
The 9p protocol relies on a reliable transport, but the current code
treats transport errors (ie, failure to marshal or unmarshal) as if
they were coming from the backend. This doesn't make sense: if the
transport failed, we should notify the guest that the transport is
broken and needs to be reset, using transport specific means.

This series modifies the existing virtio-9p transport so that it can
notify the guest about transport failures. The core 9p code is modified
as well so that it stops handling requests when the transport fails.

---

Greg Kurz (5):
      virtio: Error object based virtio_error()
      virtio-9p: factor out virtio_9p_error_err()
      fsdev: don't allow unknown format in marshal/unmarshal
      9pfs: drop pdu_push_and_notify()
      9pfs: handle broken transport


 fsdev/9p-iov-marshal.c     |    4 +--
 hw/9pfs/9p.c               |   43 +++++++++++++++++++++----------
 hw/9pfs/9p.h               |    1 +
 hw/9pfs/virtio-9p-device.c |   61 ++++++++++++++++++++++++++++++++------------
 hw/virtio/virtio.c         |   21 ++++++++++++---
 include/hw/virtio/virtio.h |    1 +
 6 files changed, 93 insertions(+), 38 deletions(-)

--
Greg