ollie-9p-mount: pass through actual 9P permissions

p9File.Getattr was hardcoding 0666 for all files, breaking
permission visibility in per-session mounts. Use the actual
mode from the 9P stat response instead.
This commit is contained in:
Levi Neely 2026-05-20 11:08:48 +02:00
parent 06ddf36de3
commit b381fa4b13
1 changed files with 6 additions and 4 deletions

View File

@ -99,16 +99,18 @@ func (f *p9File) Getattr(ctx context.Context, fh fs.FileHandle, out *fuse.AttrOu
if err != nil {
return syscall.ENOENT
}
// Report all files as rw so the kernel doesn't block writes;
// the 9P server enforces actual permissions.
out.Mode = 0666
out.Mode = uint32(dir.Mode) & 0777
out.Size = dir.Length
return 0
}
func (f *p9File) Setattr(ctx context.Context, fh fs.FileHandle, in *fuse.SetAttrIn, out *fuse.AttrOut) syscall.Errno {
// Accept truncate silently — 9P files are append/overwrite on write.
out.Mode = 0666
dir, err := f.fsys.Stat(f.path)
if err != nil {
return syscall.ENOENT
}
out.Mode = uint32(dir.Mode) & 0777
return 0
}