Currently, during FUSE_SETUPMAPPING, virtiofsd passes the wrong file descriptor for the file to mmap() to QEMU (specifically, it passes the file handle as requested from the guest).
This fixes it, using lo_fi_fd() to map the file handle to the right file descriptor on the host. Signed-off-by: Fotis Xenakis <[email protected]> --- tools/virtiofsd/passthrough_ll.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/virtiofsd/passthrough_ll.c b/tools/virtiofsd/passthrough_ll.c index e09d557d74..44bb24eb5e 100644 --- a/tools/virtiofsd/passthrough_ll.c +++ b/tools/virtiofsd/passthrough_ll.c @@ -2709,7 +2709,7 @@ static void lo_setupmapping(fuse_req_t req, fuse_ino_t ino, uint64_t foffset, msg.flags[0] = vhu_flags; if (fi) { - fd = fi->fh; + fd = lo_fi_fd(req, fi); } else { res = asprintf(&buf, "%i", lo_fd(req, ino)); if (res == -1) { -- 2.26.2 _______________________________________________ Virtio-fs mailing list [email protected] https://www.redhat.com/mailman/listinfo/virtio-fs
