mirror of
https://github.com/narrrl/proton-drive-linux.git
synced 2026-11-04 00:47:00 +01:00
flush answered ok at once and release synced the scratch file, but close(2) only returns what flush answers, so a full disk at close was reported to nobody. flush now syncs a handle with writes on a worker and returns ENOSPC, EDQUOT or EIO; release then finds the pages on disk instead of writing a whole file back on the dispatch loop. fsync on a descriptor opened for reading no longer fails with EBADF (B222). fallocate passed any mode through and tracked only a punched hole or growth: a zeroed range came back from the remote base at commit, and a collapse or insert corrupted the file. Unsupported modes now get EOPNOTSUPP, zeroed ranges count as written, the real errno is returned, and the state lock is not held across the syscall (B224).