diff options
| author | SulfurNitride <SulfurNitride@users.noreply.github.com> | 2026-03-08 01:25:22 -0600 |
|---|---|---|
| committer | SulfurNitride <SulfurNitride@users.noreply.github.com> | 2026-03-08 01:25:22 -0600 |
| commit | 2f3efb9100f51833f12f244e993155b85fa59621 (patch) | |
| tree | 39f5e71dd3d3e2da3d97b9b5b58defc8dd55680e /src | |
| parent | f055928b771df2f0dec8eb2757c2fb065c696855 (diff) | |
Remove FUSE passthrough (CAP_SYS_ADMIN incompatible with AppImage), remove bsplugins, fix bsatk types
- Remove FUSE passthrough code: requesting FUSE_CAP_PASSTHROUGH without
CAP_SYS_ADMIN caused session cleanup crash on shutdown
- Remove bsplugins library (unneeded port)
- Fix bsatk: use uint32_t instead of unsigned long for BSAULong (LP64 compat)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/src/vfs/mo2filesystem.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/src/vfs/mo2filesystem.cpp b/src/src/vfs/mo2filesystem.cpp index 4d71444..35a0098 100644 --- a/src/src/vfs/mo2filesystem.cpp +++ b/src/src/vfs/mo2filesystem.cpp @@ -509,8 +509,10 @@ void updateFileNode(Mo2FsContext* ctx, const std::string& relative, } // namespace -void mo2_init(void* /*userdata*/, struct fuse_conn_info* conn) +void mo2_init(void* userdata, struct fuse_conn_info* conn) { + auto* ctx = static_cast<Mo2FsContext*>(userdata); + // Keep kernel page cache valid across open/close as long as mtime/size are // unchanged. Mod files are immutable during a game session, so this avoids // re-reading file data from userspace on every open(). @@ -904,6 +906,7 @@ void mo2_open(fuse_req_t req, fuse_ino_t ino, struct fuse_file_info* fi) } int fd = -1; + if (writable) { const int openFlags = O_RDWR; if (isBacking && ctx->backing_dir_fd >= 0) { @@ -929,7 +932,7 @@ void mo2_open(fuse_req_t req, fuse_ino_t ino, struct fuse_file_info* fi) ctx->open_files[fh] = std::move(of); } - fi->fh = fh; + fi->fh = fh; fi->keep_cache = 1; fuse_reply_open(req, fi); } |
