summaryrefslogtreecommitdiffstats
path: root/tools/virtiofsd/fuse_virtio.c
diff options
context:
space:
mode:
authorPeter Maydell2021-03-17 10:07:28 +0100
committerPeter Maydell2021-03-17 10:07:28 +0100
commit5d1428d6c43942cfb40a909e4c30a5cbb81bda8f (patch)
tree71c7836860b0be9d0e7fdce4b3ee47e222804c4f /tools/virtiofsd/fuse_virtio.c
parentMerge remote-tracking branch 'remotes/rth-gitlab/tags/pull-misc-20210315' int... (diff)
parentmigration: Replaced qemu_mutex_lock calls with QEMU_LOCK_GUARD (diff)
downloadqemu-5d1428d6c43942cfb40a909e4c30a5cbb81bda8f.tar.gz
qemu-5d1428d6c43942cfb40a909e4c30a5cbb81bda8f.tar.xz
qemu-5d1428d6c43942cfb40a909e4c30a5cbb81bda8f.zip
Merge remote-tracking branch 'remotes/dgilbert-gitlab/tags/pull-virtiofs-20210315' into staging
virtiofs and migration pull 2021-03-15 Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> # gpg: Signature made Mon 15 Mar 2021 20:03:03 GMT # gpg: using RSA key 45F5C71B4A0CB7FB977A9FA90516331EBC5BFDE7 # gpg: Good signature from "Dr. David Alan Gilbert (RH2) <dgilbert@redhat.com>" [full] # Primary key fingerprint: 45F5 C71B 4A0C B7FB 977A 9FA9 0516 331E BC5B FDE7 * remotes/dgilbert-gitlab/tags/pull-virtiofs-20210315: migration: Replaced qemu_mutex_lock calls with QEMU_LOCK_GUARD monitor: Replaced qemu_mutex_lock calls with QEMU_LOCK_GUARD migration/tls: add error handling in multifd_tls_handshake_thread migration/tls: fix inverted semantics in multifd_channel_connect virtiofsd: Convert some functions to return bool virtiofsd: Don't allow empty paths in lookup_name() virtiofsd: Don't allow empty filenames virtiofsd: Add qemu version and copyright info virtiofsd: Release vu_dispatch_lock when stopping queue Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'tools/virtiofsd/fuse_virtio.c')
-rw-r--r--tools/virtiofsd/fuse_virtio.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/tools/virtiofsd/fuse_virtio.c b/tools/virtiofsd/fuse_virtio.c
index 523ee64fb7..3e13997406 100644
--- a/tools/virtiofsd/fuse_virtio.c
+++ b/tools/virtiofsd/fuse_virtio.c
@@ -792,7 +792,13 @@ static void fv_queue_set_started(VuDev *dev, int qidx, bool started)
assert(0);
}
} else {
+ /*
+ * Temporarily drop write-lock taken in virtio_loop() so that
+ * the queue thread doesn't block in virtio_send_msg().
+ */
+ vu_dispatch_unlock(vud);
fv_queue_cleanup_thread(vud, qidx);
+ vu_dispatch_wrlock(vud);
}
}