forked from TrueCloudLab/restic
8f20d5dcd5
Previously, nodeRestoreTimestamps would do something like if node.Type == restic.NodeTypeSymlink { return nodeRestoreSymlinkTimestamps(...) } return syscall.UtimesNano(...) where nodeRestoreSymlinkTimestamps was either a no-op or a reimplementation of syscall.UtimesNano that handles symlinks, with some repeated converting between timestamp types. The Linux implementation was a bit clumsy, requiring three syscalls to set the timestamps. In this new setup, there is a function utimesNano that has three implementations: * on Linux, it's a modified syscall.UtimesNano that uses AT_SYMLINK_NOFOLLOW and AT_FDCWD so it can handle any type in a single call; * on other Unix platforms, it just calls the syscall function after skipping symlinks; * on Windows, it's the modified UtimesNano that was previously called nodeRestoreSymlinkTimestamps, except with different arguments. |
||
---|---|---|
.. | ||
archiver | ||
backend | ||
bloblru | ||
checker | ||
crypto | ||
debug | ||
dump | ||
errors | ||
feature | ||
filter | ||
fs | ||
fuse | ||
migrations | ||
options | ||
repository | ||
restic | ||
restorer | ||
selfupdate | ||
test | ||
textfile | ||
ui | ||
walker |