On 12/09/2022 09:07, Reuben Thomas wrote:
On Mon, 16 May 2016 at 15:42, Pádraig Brady <[email protected] <mailto:[email protected]>> wrote:I just don't have the time at present to complete this. I did implement ACID file replacement using POSIX APIs a while ago in: https://github.com/pixelb/crudini <https://github.com/pixelb/crudini> The commit messages there have details on fsync()ing requirements etc. Implementation in C in coreutils could also use other APIs where available like renameat2(..., RENAME_EXCHANGE) and exchangedata() etc. I noticed XFS_IOC_SWAPEXT but that's currently hardcoded to support only same sized replacements (for defragment apps). I was thinking of providing a wrapper for exchangedata() in gnulib, which could be leveraged where available or falling back to the current POSIX APIs. Did you get any further? I was prompted to look up this thread by a deprecation message for "tempfile" from Victor Porton's "inplace" script, which I still use!
Not yet unfortunately
