diff --git a/cmd/restic/integration_helpers_test.go b/cmd/restic/integration_helpers_test.go index bc20b63b1..3d0ad51ba 100644 --- a/cmd/restic/integration_helpers_test.go +++ b/cmd/restic/integration_helpers_test.go @@ -71,7 +71,7 @@ func sameModTime(fi1, fi2 os.FileInfo) bool { } } - return fi1.ModTime() == fi2.ModTime() + return fi1.ModTime().Equal(fi2.ModTime()) } // directoriesEqualContents checks if both directories contain exactly the same diff --git a/internal/archiver/archiver.go b/internal/archiver/archiver.go index 9e7ee307d..89300add9 100644 --- a/internal/archiver/archiver.go +++ b/internal/archiver/archiver.go @@ -134,7 +134,7 @@ func (arch *Archiver) reloadFileIfChanged(node *restic.Node, file fs.File) (*res return nil, errors.Wrap(err, "restic.Stat") } - if fi.ModTime() == node.ModTime { + if fi.ModTime().Equal(node.ModTime) { return node, nil } diff --git a/internal/restic/node.go b/internal/restic/node.go index e5970cdb4..28b9dfedf 100644 --- a/internal/restic/node.go +++ b/internal/restic/node.go @@ -503,7 +503,7 @@ func (node *Node) IsNewer(path string, fi os.FileInfo) bool { extendedStat, ok := toStatT(fi.Sys()) if !ok { - if node.ModTime != fi.ModTime() || + if !node.ModTime.Equal(fi.ModTime()) || node.Size != size { debug.Log("node %v is newer: timestamp or size changed", path) return true @@ -513,8 +513,8 @@ func (node *Node) IsNewer(path string, fi os.FileInfo) bool { inode := extendedStat.ino() - if node.ModTime != fi.ModTime() || - node.ChangeTime != changeTime(extendedStat) || + if !node.ModTime.Equal(fi.ModTime()) || + !node.ChangeTime.Equal(changeTime(extendedStat)) || node.Inode != uint64(inode) || node.Size != size { debug.Log("node %v is newer: timestamp, size or inode changed", path)