Originally posted by leipero
View Post
They assumes that the open give them the file, not a symlink.
After opening the file, they would just update it without replacing that symlink with an actual file.
If you would like to add symlink handling support to prefix, then you would have to patch the interception of syscall/library call in WINE, to detect if the app is trying to open the prefix to be writeable, and update it according.
It’s likely it will introduce more bugs into WINE…
One easy alternative way is to use overlayfs.
It can be run over any filesystem to give it “copy on write” semantics, though generally it copies the whole file on write.
With some more complex runtime setup (need to mount overlayfs for every prefix for each application, requires sudo unless using fuse overlayfs, which have worse performance than in-kernel implementation), you can get it to act like reflink.
The downside, is if you are using in-kernel implementation of overlayfs, then kernel version >= 3.18 is needed and WINE needs to run as root to mount the overlayfs.
If you are using the fuse implementation (userpspace implementation), then you won’t need kernel version >= 3.18 or WINE to run as root, but fuse implementation is going to be slower on opening the file, though reading/writing the file is on par with native filesystem.
Leave a comment: