From 44a1fa6fac19e3c323a7d7d8bf9d0443cc54b75b Mon Sep 17 00:00:00 2001 From: SulfurNitride Date: Wed, 27 May 2026 23:36:43 -0500 Subject: Clarify lazy FUSE read fd handling --- src/src/vfs/mo2filesystem.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/src/vfs/mo2filesystem.cpp b/src/src/vfs/mo2filesystem.cpp index e34258c..814d2ce 100644 --- a/src/src/vfs/mo2filesystem.cpp +++ b/src/src/vfs/mo2filesystem.cpp @@ -1532,9 +1532,9 @@ void mo2_open(fuse_req_t req, fuse_ino_t ino, struct fuse_file_info* fi) // This matches upstream USVFS behavior more closely than the previous // conservative "copy everything writable into overwrite" approach. // - // Read strategy: always open a real backing fd at open() time so mo2_read - // can splice from it without re-opening per read call. Avoids N syscalls - // per file for games that stream large BSAs in many small chunks. + // Read strategy: create the handle cheaply, then open the backing fd on the + // first read and retain a bounded LRU set. Wine probes many files it never + // reads, while streamed files still get splice-friendly retained fds. int fd = -1; if (writable) { -- cgit v1.3.1