parent
326f0cfa2f
commit
5c292c61c6
1437 changed files with 208886 additions and 87131 deletions
7
vendor/github.com/containers/storage/pkg/system/chtimes_unix.go
generated
vendored
7
vendor/github.com/containers/storage/pkg/system/chtimes_unix.go
generated
vendored
|
|
@ -1,3 +1,4 @@
|
|||
//go:build !windows
|
||||
// +build !windows
|
||||
|
||||
package system
|
||||
|
|
@ -6,9 +7,9 @@ import (
|
|||
"time"
|
||||
)
|
||||
|
||||
//setCTime will set the create time on a file. On Unix, the create
|
||||
//time is updated as a side effect of setting the modified time, so
|
||||
//no action is required.
|
||||
// setCTime will set the create time on a file. On Unix, the create
|
||||
// time is updated as a side effect of setting the modified time, so
|
||||
// no action is required.
|
||||
func setCTime(path string, ctime time.Time) error {
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
5
vendor/github.com/containers/storage/pkg/system/chtimes_windows.go
generated
vendored
5
vendor/github.com/containers/storage/pkg/system/chtimes_windows.go
generated
vendored
|
|
@ -1,3 +1,4 @@
|
|||
//go:build windows
|
||||
// +build windows
|
||||
|
||||
package system
|
||||
|
|
@ -8,8 +9,8 @@ import (
|
|||
"golang.org/x/sys/windows"
|
||||
)
|
||||
|
||||
//setCTime will set the create time on a file. On Windows, this requires
|
||||
//calling SetFileTime and explicitly including the create time.
|
||||
// setCTime will set the create time on a file. On Windows, this requires
|
||||
// calling SetFileTime and explicitly including the create time.
|
||||
func setCTime(path string, ctime time.Time) error {
|
||||
ctimespec := windows.NsecToTimespec(ctime.UnixNano())
|
||||
pathp, e := windows.UTF16PtrFromString(path)
|
||||
|
|
|
|||
6
vendor/github.com/containers/storage/pkg/system/errors.go
generated
vendored
6
vendor/github.com/containers/storage/pkg/system/errors.go
generated
vendored
|
|
@ -4,7 +4,5 @@ import (
|
|||
"errors"
|
||||
)
|
||||
|
||||
var (
|
||||
// ErrNotSupportedPlatform means the platform is not supported.
|
||||
ErrNotSupportedPlatform = errors.New("platform and architecture is not supported")
|
||||
)
|
||||
// ErrNotSupportedPlatform means the platform is not supported.
|
||||
var ErrNotSupportedPlatform = errors.New("platform and architecture is not supported")
|
||||
|
|
|
|||
2
vendor/github.com/containers/storage/pkg/system/init.go
generated
vendored
2
vendor/github.com/containers/storage/pkg/system/init.go
generated
vendored
|
|
@ -6,7 +6,7 @@ import (
|
|||
"unsafe"
|
||||
)
|
||||
|
||||
// Used by chtimes
|
||||
// maxTime is used by chtimes.
|
||||
var maxTime time.Time
|
||||
|
||||
func init() {
|
||||
|
|
|
|||
1
vendor/github.com/containers/storage/pkg/system/init_windows.go
generated
vendored
1
vendor/github.com/containers/storage/pkg/system/init_windows.go
generated
vendored
|
|
@ -13,5 +13,4 @@ func init() {
|
|||
if os.Getenv("LCOW_SUPPORTED") != "" {
|
||||
lcowSupported = true
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
56
vendor/github.com/containers/storage/pkg/system/lchflags_bsd.go
generated
vendored
Normal file
56
vendor/github.com/containers/storage/pkg/system/lchflags_bsd.go
generated
vendored
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
//go:build freebsd
|
||||
// +build freebsd
|
||||
|
||||
package system
|
||||
|
||||
import (
|
||||
"unsafe"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
||||
// Flag values from <sys/stat.h>
|
||||
const (
|
||||
/*
|
||||
* Definitions of flags stored in file flags word.
|
||||
*
|
||||
* Super-user and owner changeable flags.
|
||||
*/
|
||||
UF_SETTABLE uint32 = 0x0000ffff /* mask of owner changeable flags */
|
||||
UF_NODUMP uint32 = 0x00000001 /* do not dump file */
|
||||
UF_IMMUTABLE uint32 = 0x00000002 /* file may not be changed */
|
||||
UF_APPEND uint32 = 0x00000004 /* writes to file may only append */
|
||||
UF_OPAQUE uint32 = 0x00000008 /* directory is opaque wrt. union */
|
||||
UF_NOUNLINK uint32 = 0x00000010 /* file may not be removed or renamed */
|
||||
|
||||
UF_SYSTEM uint32 = 0x00000080 /* Windows system file bit */
|
||||
UF_SPARSE uint32 = 0x00000100 /* sparse file */
|
||||
UF_OFFLINE uint32 = 0x00000200 /* file is offline */
|
||||
UF_REPARSE uint32 = 0x00000400 /* Windows reparse point file bit */
|
||||
UF_ARCHIVE uint32 = 0x00000800 /* file needs to be archived */
|
||||
UF_READONLY uint32 = 0x00001000 /* Windows readonly file bit */
|
||||
/* This is the same as the MacOS X definition of UF_HIDDEN. */
|
||||
UF_HIDDEN uint32 = 0x00008000 /* file is hidden */
|
||||
|
||||
/*
|
||||
* Super-user changeable flags.
|
||||
*/
|
||||
SF_SETTABLE uint32 = 0xffff0000 /* mask of superuser changeable flags */
|
||||
SF_ARCHIVED uint32 = 0x00010000 /* file is archived */
|
||||
SF_IMMUTABLE uint32 = 0x00020000 /* file may not be changed */
|
||||
SF_APPEND uint32 = 0x00040000 /* writes to file may only append */
|
||||
SF_NOUNLINK uint32 = 0x00100000 /* file may not be removed or renamed */
|
||||
SF_SNAPSHOT uint32 = 0x00200000 /* snapshot inode */
|
||||
)
|
||||
|
||||
func Lchflags(path string, flags uint32) error {
|
||||
p, err := unix.BytePtrFromString(path)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_, _, e1 := unix.Syscall(unix.SYS_LCHFLAGS, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
|
||||
if e1 != 0 {
|
||||
return e1
|
||||
}
|
||||
return nil
|
||||
}
|
||||
1
vendor/github.com/containers/storage/pkg/system/lcow_unix.go
generated
vendored
1
vendor/github.com/containers/storage/pkg/system/lcow_unix.go
generated
vendored
|
|
@ -1,3 +1,4 @@
|
|||
//go:build !windows
|
||||
// +build !windows
|
||||
|
||||
package system
|
||||
|
|
|
|||
3
vendor/github.com/containers/storage/pkg/system/lstat_unix.go
generated
vendored
3
vendor/github.com/containers/storage/pkg/system/lstat_unix.go
generated
vendored
|
|
@ -1,3 +1,4 @@
|
|||
//go:build !windows
|
||||
// +build !windows
|
||||
|
||||
package system
|
||||
|
|
@ -14,7 +15,7 @@ import (
|
|||
func Lstat(path string) (*StatT, error) {
|
||||
s := &syscall.Stat_t{}
|
||||
if err := syscall.Lstat(path, s); err != nil {
|
||||
return nil, &os.PathError{"Lstat", path, err}
|
||||
return nil, &os.PathError{Op: "Lstat", Path: path, Err: err}
|
||||
}
|
||||
return fromStatT(s)
|
||||
}
|
||||
|
|
|
|||
6
vendor/github.com/containers/storage/pkg/system/meminfo_freebsd.go
generated
vendored
6
vendor/github.com/containers/storage/pkg/system/meminfo_freebsd.go
generated
vendored
|
|
@ -4,6 +4,7 @@
|
|||
package system
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"unsafe"
|
||||
|
||||
|
|
@ -58,7 +59,8 @@ func getSwapInfo() (int64, int64, error) {
|
|||
}
|
||||
|
||||
// ReadMemInfo retrieves memory statistics of the host system and returns a
|
||||
// MemInfo type.
|
||||
//
|
||||
// MemInfo type.
|
||||
func ReadMemInfo() (*MemInfo, error) {
|
||||
MemTotal, MemFree, err := getMemInfo()
|
||||
if err != nil {
|
||||
|
|
@ -70,7 +72,7 @@ func ReadMemInfo() (*MemInfo, error) {
|
|||
}
|
||||
|
||||
if MemTotal < 0 || MemFree < 0 || SwapTotal < 0 || SwapFree < 0 {
|
||||
return nil, fmt.Errorf("getting system memory info %w", err)
|
||||
return nil, errors.New("getting system memory info")
|
||||
}
|
||||
|
||||
meminfo := &MemInfo{}
|
||||
|
|
|
|||
4
vendor/github.com/containers/storage/pkg/system/meminfo_solaris.go
generated
vendored
4
vendor/github.com/containers/storage/pkg/system/meminfo_solaris.go
generated
vendored
|
|
@ -81,9 +81,9 @@ func getFreeMem() int64 {
|
|||
}
|
||||
|
||||
// ReadMemInfo retrieves memory statistics of the host system and returns a
|
||||
// MemInfo type.
|
||||
//
|
||||
// MemInfo type.
|
||||
func ReadMemInfo() (*MemInfo, error) {
|
||||
|
||||
ppKernel := C.getPpKernel()
|
||||
MemTotal := getTotalMem()
|
||||
MemFree := getFreeMem()
|
||||
|
|
|
|||
3
vendor/github.com/containers/storage/pkg/system/meminfo_windows.go
generated
vendored
3
vendor/github.com/containers/storage/pkg/system/meminfo_windows.go
generated
vendored
|
|
@ -27,7 +27,8 @@ type memorystatusex struct {
|
|||
}
|
||||
|
||||
// ReadMemInfo retrieves memory statistics of the host system and returns a
|
||||
// MemInfo type.
|
||||
//
|
||||
// MemInfo type.
|
||||
func ReadMemInfo() (*MemInfo, error) {
|
||||
msi := &memorystatusex{
|
||||
dwLength: 64,
|
||||
|
|
|
|||
5
vendor/github.com/containers/storage/pkg/system/mknod.go
generated
vendored
5
vendor/github.com/containers/storage/pkg/system/mknod.go
generated
vendored
|
|
@ -1,3 +1,4 @@
|
|||
//go:build !windows && !freebsd
|
||||
// +build !windows,!freebsd
|
||||
|
||||
package system
|
||||
|
|
@ -8,8 +9,8 @@ import (
|
|||
|
||||
// Mknod creates a filesystem node (file, device special file or named pipe) named path
|
||||
// with attributes specified by mode and dev.
|
||||
func Mknod(path string, mode uint32, dev int) error {
|
||||
return unix.Mknod(path, mode, dev)
|
||||
func Mknod(path string, mode uint32, dev uint32) error {
|
||||
return unix.Mknod(path, mode, int(dev))
|
||||
}
|
||||
|
||||
// Mkdev is used to build the value of linux devices (in /dev/) which specifies major
|
||||
|
|
|
|||
5
vendor/github.com/containers/storage/pkg/system/mknod_freebsd.go
generated
vendored
5
vendor/github.com/containers/storage/pkg/system/mknod_freebsd.go
generated
vendored
|
|
@ -1,3 +1,4 @@
|
|||
//go:build freebsd
|
||||
// +build freebsd
|
||||
|
||||
package system
|
||||
|
|
@ -17,6 +18,6 @@ func Mknod(path string, mode uint32, dev uint64) error {
|
|||
// Linux device nodes are a bit weird due to backwards compat with 16 bit device nodes.
|
||||
// They are, from low to high: the lower 8 bits of the minor, then 12 bits of the major,
|
||||
// then the top 12 bits of the minor.
|
||||
func Mkdev(major int64, minor int64) uint32 {
|
||||
return uint32(((minor & 0xfff00) << 12) | ((major & 0xfff) << 8) | (minor & 0xff))
|
||||
func Mkdev(major int64, minor int64) uint64 {
|
||||
return uint64(((minor & 0xfff00) << 12) | ((major & 0xfff) << 8) | (minor & 0xff))
|
||||
}
|
||||
|
|
|
|||
1
vendor/github.com/containers/storage/pkg/system/mknod_windows.go
generated
vendored
1
vendor/github.com/containers/storage/pkg/system/mknod_windows.go
generated
vendored
|
|
@ -1,3 +1,4 @@
|
|||
//go:build windows
|
||||
// +build windows
|
||||
|
||||
package system
|
||||
|
|
|
|||
1
vendor/github.com/containers/storage/pkg/system/path.go
generated
vendored
1
vendor/github.com/containers/storage/pkg/system/path.go
generated
vendored
|
|
@ -17,5 +17,4 @@ func DefaultPathEnv(platform string) string {
|
|||
return ""
|
||||
}
|
||||
return defaultUnixPathEnv
|
||||
|
||||
}
|
||||
|
|
|
|||
1
vendor/github.com/containers/storage/pkg/system/path_unix.go
generated
vendored
1
vendor/github.com/containers/storage/pkg/system/path_unix.go
generated
vendored
|
|
@ -1,3 +1,4 @@
|
|||
//go:build !windows
|
||||
// +build !windows
|
||||
|
||||
package system
|
||||
|
|
|
|||
1
vendor/github.com/containers/storage/pkg/system/process_unix.go
generated
vendored
1
vendor/github.com/containers/storage/pkg/system/process_unix.go
generated
vendored
|
|
@ -1,3 +1,4 @@
|
|||
//go:build linux || freebsd || solaris || darwin
|
||||
// +build linux freebsd solaris darwin
|
||||
|
||||
package system
|
||||
|
|
|
|||
22
vendor/github.com/containers/storage/pkg/system/rm.go
generated
vendored
22
vendor/github.com/containers/storage/pkg/system/rm.go
generated
vendored
|
|
@ -1,6 +1,7 @@
|
|||
package system
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
"syscall"
|
||||
|
|
@ -29,6 +30,12 @@ func EnsureRemoveAll(dir string) error {
|
|||
exitOnErr := make(map[string]int)
|
||||
maxRetry := 100
|
||||
|
||||
// Attempt a simple remove all first, this avoids the more expensive
|
||||
// RecursiveUnmount call if not needed.
|
||||
if err := os.RemoveAll(dir); err == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Attempt to unmount anything beneath this dir first
|
||||
if err := mount.RecursiveUnmount(dir); err != nil {
|
||||
logrus.Debugf("RecusiveUnmount on %s failed: %v", dir, err)
|
||||
|
|
@ -40,6 +47,19 @@ func EnsureRemoveAll(dir string) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// If the RemoveAll fails with a permission error, we
|
||||
// may have immutable files so try to remove the
|
||||
// immutable flag and redo the RemoveAll.
|
||||
if errors.Is(err, syscall.EPERM) {
|
||||
if err = resetFileFlags(dir); err != nil {
|
||||
return fmt.Errorf("resetting file flags: %w", err)
|
||||
}
|
||||
err = os.RemoveAll(dir)
|
||||
if err == nil {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
pe, ok := err.(*os.PathError)
|
||||
if !ok {
|
||||
return err
|
||||
|
|
@ -62,7 +82,7 @@ func EnsureRemoveAll(dir string) error {
|
|||
continue
|
||||
}
|
||||
|
||||
if pe.Err != syscall.EBUSY {
|
||||
if !IsEBUSY(pe.Err) {
|
||||
return err
|
||||
}
|
||||
|
||||
|
|
|
|||
10
vendor/github.com/containers/storage/pkg/system/rm_common.go
generated
vendored
Normal file
10
vendor/github.com/containers/storage/pkg/system/rm_common.go
generated
vendored
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
//go:build !freebsd
|
||||
// +build !freebsd
|
||||
|
||||
package system
|
||||
|
||||
// Reset file flags in a directory tree. This allows EnsureRemoveAll
|
||||
// to delete trees which have the immutable flag set.
|
||||
func resetFileFlags(dir string) error {
|
||||
return nil
|
||||
}
|
||||
17
vendor/github.com/containers/storage/pkg/system/rm_freebsd.go
generated
vendored
Normal file
17
vendor/github.com/containers/storage/pkg/system/rm_freebsd.go
generated
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
package system
|
||||
|
||||
import (
|
||||
"io/fs"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
// Reset file flags in a directory tree. This allows EnsureRemoveAll
|
||||
// to delete trees which have the immutable flag set.
|
||||
func resetFileFlags(dir string) error {
|
||||
return filepath.WalkDir(dir, func(path string, d fs.DirEntry, err error) error {
|
||||
if err := Lchflags(path, 0); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
12
vendor/github.com/containers/storage/pkg/system/stat_common.go
generated
vendored
Normal file
12
vendor/github.com/containers/storage/pkg/system/stat_common.go
generated
vendored
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
//go:build !freebsd
|
||||
// +build !freebsd
|
||||
|
||||
package system
|
||||
|
||||
type platformStatT struct{}
|
||||
|
||||
// Flags return file flags if supported or zero otherwise
|
||||
func (s StatT) Flags() uint32 {
|
||||
_ = s.platformStatT // Silence warnings that StatT.platformStatT is unused (on these platforms)
|
||||
return 0
|
||||
}
|
||||
6
vendor/github.com/containers/storage/pkg/system/stat_darwin.go
generated
vendored
6
vendor/github.com/containers/storage/pkg/system/stat_darwin.go
generated
vendored
|
|
@ -4,10 +4,12 @@ import "syscall"
|
|||
|
||||
// fromStatT converts a syscall.Stat_t type to a system.Stat_t type
|
||||
func fromStatT(s *syscall.Stat_t) (*StatT, error) {
|
||||
return &StatT{size: s.Size,
|
||||
return &StatT{
|
||||
size: s.Size,
|
||||
mode: uint32(s.Mode),
|
||||
uid: s.Uid,
|
||||
gid: s.Gid,
|
||||
rdev: uint64(s.Rdev),
|
||||
mtim: s.Mtimespec}, nil
|
||||
mtim: s.Mtimespec,
|
||||
}, nil
|
||||
}
|
||||
|
|
|
|||
19
vendor/github.com/containers/storage/pkg/system/stat_freebsd.go
generated
vendored
19
vendor/github.com/containers/storage/pkg/system/stat_freebsd.go
generated
vendored
|
|
@ -2,12 +2,27 @@ package system
|
|||
|
||||
import "syscall"
|
||||
|
||||
type platformStatT struct {
|
||||
flags uint32
|
||||
}
|
||||
|
||||
// Flags return file flags if supported or zero otherwise
|
||||
func (s StatT) Flags() uint32 {
|
||||
return s.flags
|
||||
}
|
||||
|
||||
// fromStatT converts a syscall.Stat_t type to a system.Stat_t type
|
||||
func fromStatT(s *syscall.Stat_t) (*StatT, error) {
|
||||
return &StatT{size: s.Size,
|
||||
st := &StatT{
|
||||
size: s.Size,
|
||||
mode: uint32(s.Mode),
|
||||
uid: s.Uid,
|
||||
gid: s.Gid,
|
||||
rdev: uint64(s.Rdev),
|
||||
mtim: s.Mtimespec}, nil
|
||||
mtim: s.Mtimespec,
|
||||
dev: s.Dev,
|
||||
}
|
||||
st.flags = s.Flags
|
||||
st.dev = s.Dev
|
||||
return st, nil
|
||||
}
|
||||
|
|
|
|||
7
vendor/github.com/containers/storage/pkg/system/stat_linux.go
generated
vendored
7
vendor/github.com/containers/storage/pkg/system/stat_linux.go
generated
vendored
|
|
@ -4,12 +4,15 @@ import "syscall"
|
|||
|
||||
// fromStatT converts a syscall.Stat_t type to a system.Stat_t type
|
||||
func fromStatT(s *syscall.Stat_t) (*StatT, error) {
|
||||
return &StatT{size: s.Size,
|
||||
return &StatT{
|
||||
size: s.Size,
|
||||
mode: s.Mode,
|
||||
uid: s.Uid,
|
||||
gid: s.Gid,
|
||||
rdev: uint64(s.Rdev),
|
||||
mtim: s.Mtim}, nil
|
||||
mtim: s.Mtim,
|
||||
dev: uint64(s.Dev),
|
||||
}, nil
|
||||
}
|
||||
|
||||
// FromStatT converts a syscall.Stat_t type to a system.Stat_t type
|
||||
|
|
|
|||
6
vendor/github.com/containers/storage/pkg/system/stat_openbsd.go
generated
vendored
6
vendor/github.com/containers/storage/pkg/system/stat_openbsd.go
generated
vendored
|
|
@ -4,10 +4,12 @@ import "syscall"
|
|||
|
||||
// fromStatT converts a syscall.Stat_t type to a system.Stat_t type
|
||||
func fromStatT(s *syscall.Stat_t) (*StatT, error) {
|
||||
return &StatT{size: s.Size,
|
||||
return &StatT{
|
||||
size: s.Size,
|
||||
mode: uint32(s.Mode),
|
||||
uid: s.Uid,
|
||||
gid: s.Gid,
|
||||
rdev: uint64(s.Rdev),
|
||||
mtim: s.Mtim}, nil
|
||||
mtim: s.Mtim,
|
||||
}, nil
|
||||
}
|
||||
|
|
|
|||
6
vendor/github.com/containers/storage/pkg/system/stat_solaris.go
generated
vendored
6
vendor/github.com/containers/storage/pkg/system/stat_solaris.go
generated
vendored
|
|
@ -4,10 +4,12 @@ import "syscall"
|
|||
|
||||
// fromStatT converts a syscall.Stat_t type to a system.Stat_t type
|
||||
func fromStatT(s *syscall.Stat_t) (*StatT, error) {
|
||||
return &StatT{size: s.Size,
|
||||
return &StatT{
|
||||
size: s.Size,
|
||||
mode: uint32(s.Mode),
|
||||
uid: s.Uid,
|
||||
gid: s.Gid,
|
||||
rdev: uint64(s.Rdev),
|
||||
mtim: s.Mtim}, nil
|
||||
mtim: s.Mtim,
|
||||
}, nil
|
||||
}
|
||||
|
|
|
|||
8
vendor/github.com/containers/storage/pkg/system/stat_unix.go
generated
vendored
8
vendor/github.com/containers/storage/pkg/system/stat_unix.go
generated
vendored
|
|
@ -1,3 +1,4 @@
|
|||
//go:build !windows
|
||||
// +build !windows
|
||||
|
||||
package system
|
||||
|
|
@ -17,6 +18,8 @@ type StatT struct {
|
|||
rdev uint64
|
||||
size int64
|
||||
mtim syscall.Timespec
|
||||
dev uint64
|
||||
platformStatT
|
||||
}
|
||||
|
||||
// Mode returns file's permission mode.
|
||||
|
|
@ -49,6 +52,11 @@ func (s StatT) Mtim() syscall.Timespec {
|
|||
return s.mtim
|
||||
}
|
||||
|
||||
// Dev returns a unique identifier for owning filesystem
|
||||
func (s StatT) Dev() uint64 {
|
||||
return s.dev
|
||||
}
|
||||
|
||||
// Stat takes a path to a file and returns
|
||||
// a system.StatT type pertaining to that file.
|
||||
//
|
||||
|
|
|
|||
9
vendor/github.com/containers/storage/pkg/system/stat_windows.go
generated
vendored
9
vendor/github.com/containers/storage/pkg/system/stat_windows.go
generated
vendored
|
|
@ -11,6 +11,7 @@ type StatT struct {
|
|||
mode os.FileMode
|
||||
size int64
|
||||
mtim time.Time
|
||||
platformStatT
|
||||
}
|
||||
|
||||
// Size returns file's size.
|
||||
|
|
@ -42,6 +43,11 @@ func (s StatT) GID() uint32 {
|
|||
return 0
|
||||
}
|
||||
|
||||
// Dev returns a unique identifier for owning filesystem
|
||||
func (s StatT) Dev() uint64 {
|
||||
return 0
|
||||
}
|
||||
|
||||
// Stat takes a path to a file and returns
|
||||
// a system.StatT type pertaining to that file.
|
||||
//
|
||||
|
|
@ -59,5 +65,6 @@ func fromStatT(fi *os.FileInfo) (*StatT, error) {
|
|||
return &StatT{
|
||||
size: (*fi).Size(),
|
||||
mode: (*fi).Mode(),
|
||||
mtim: (*fi).ModTime()}, nil
|
||||
mtim: (*fi).ModTime(),
|
||||
}, nil
|
||||
}
|
||||
|
|
|
|||
1
vendor/github.com/containers/storage/pkg/system/umask.go
generated
vendored
1
vendor/github.com/containers/storage/pkg/system/umask.go
generated
vendored
|
|
@ -1,3 +1,4 @@
|
|||
//go:build !windows
|
||||
// +build !windows
|
||||
|
||||
package system
|
||||
|
|
|
|||
1
vendor/github.com/containers/storage/pkg/system/umask_windows.go
generated
vendored
1
vendor/github.com/containers/storage/pkg/system/umask_windows.go
generated
vendored
|
|
@ -1,3 +1,4 @@
|
|||
//go:build windows
|
||||
// +build windows
|
||||
|
||||
package system
|
||||
|
|
|
|||
5
vendor/github.com/containers/storage/pkg/system/utimes_freebsd.go
generated
vendored
5
vendor/github.com/containers/storage/pkg/system/utimes_freebsd.go
generated
vendored
|
|
@ -10,13 +10,14 @@ import (
|
|||
// LUtimesNano is used to change access and modification time of the specified path.
|
||||
// It's used for symbol link file because unix.UtimesNano doesn't support a NOFOLLOW flag atm.
|
||||
func LUtimesNano(path string, ts []syscall.Timespec) error {
|
||||
atFdCwd := unix.AT_FDCWD
|
||||
|
||||
var _path *byte
|
||||
_path, err := unix.BytePtrFromString(path)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if _, _, err := unix.Syscall(unix.SYS_LUTIMES, uintptr(unsafe.Pointer(_path)), uintptr(unsafe.Pointer(&ts[0])), 0); err != 0 && err != unix.ENOSYS {
|
||||
if _, _, err := unix.Syscall6(unix.SYS_UTIMENSAT, uintptr(atFdCwd), uintptr(unsafe.Pointer(_path)), uintptr(unsafe.Pointer(&ts[0])), unix.AT_SYMLINK_NOFOLLOW, 0, 0); err != 0 && err != unix.ENOSYS {
|
||||
return err
|
||||
}
|
||||
|
||||
|
|
|
|||
1
vendor/github.com/containers/storage/pkg/system/utimes_unsupported.go
generated
vendored
1
vendor/github.com/containers/storage/pkg/system/utimes_unsupported.go
generated
vendored
|
|
@ -1,3 +1,4 @@
|
|||
//go:build !linux && !freebsd
|
||||
// +build !linux,!freebsd
|
||||
|
||||
package system
|
||||
|
|
|
|||
1
vendor/github.com/containers/storage/pkg/system/xattrs_unsupported.go
generated
vendored
1
vendor/github.com/containers/storage/pkg/system/xattrs_unsupported.go
generated
vendored
|
|
@ -1,3 +1,4 @@
|
|||
//go:build !linux && !darwin
|
||||
// +build !linux,!darwin
|
||||
|
||||
package system
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue