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

Reply via email to