|
@@ -2,9 +2,25 @@ package system // import "github.com/docker/docker/pkg/system"
|
|
|
|
|
|
import (
|
|
|
"os"
|
|
|
+ "syscall"
|
|
|
"time"
|
|
|
+ "unsafe"
|
|
|
)
|
|
|
|
|
|
+// Used by Chtimes
|
|
|
+var maxTime time.Time
|
|
|
+
|
|
|
+func init() {
|
|
|
+ if unsafe.Sizeof(syscall.Timespec{}.Nsec) == 8 {
|
|
|
+ // This is a 64 bit timespec
|
|
|
+ // os.Chtimes limits time to the following
|
|
|
+ maxTime = time.Unix(0, 1<<63-1)
|
|
|
+ } else {
|
|
|
+ // This is a 32 bit timespec
|
|
|
+ maxTime = time.Unix(1<<31-1, 0)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
// Chtimes changes the access time and modified time of a file at the given path
|
|
|
func Chtimes(name string, atime time.Time, mtime time.Time) error {
|
|
|
unixMinTime := time.Unix(0, 0)
|