diff --git a/pkg/mountinfo/mountinfo.go b/pkg/mountinfo/mountinfo.go index f227902..557bb36 100644 --- a/pkg/mountinfo/mountinfo.go +++ b/pkg/mountinfo/mountinfo.go @@ -20,7 +20,6 @@ import ( "fmt" "io" "os" - "sort" "strconv" "strings" @@ -50,7 +49,6 @@ func ParseMounts(pid uint) (Mounts, error) { return nil, err } defer mi.Close() - return parseMountinfo(mi) } @@ -136,6 +134,5 @@ func parseMountinfo(mi io.Reader) (Mounts, error) { if err := sc.Err(); err != nil { return nil, errwrap.Wrap(errors.New("problem parsing mountinfo"), err) } - sort.Sort(podMounts) return podMounts, nil } diff --git a/pkg/sys/sys_linux.go b/pkg/sys/sys_linux.go index f273826..4b4b3f5 100644 --- a/pkg/sys/sys_linux.go +++ b/pkg/sys/sys_linux.go @@ -19,6 +19,10 @@ import "syscall" func Syncfs(fd int) error { _, _, err := syscall.RawSyscall(SYS_SYNCFS, uintptr(fd), 0, 0) if err != 0 { + if err == syscall.ENOSYS { + // Let it fail + return nil + } return syscall.Errno(err) } return nil diff --git a/stage1_fly/run/main.go b/stage1_fly/run/main.go index e3ac294..620d5ce 100644 --- a/stage1_fly/run/main.go +++ b/stage1_fly/run/main.go @@ -434,7 +434,9 @@ func stage1(rp *stage1commontypes.RuntimePod) int { if err := mounter.Mount(mount.HostPath, absTargetPath, mount.Fs, mount.Flags, ""); err != nil { log.PrintE(fmt.Sprintf("can't mount %q on %q with flags %v", mount.HostPath, absTargetPath, mount.Flags), err) - return 254 + if mount.HostPath != "" || mount.Flags != (syscall.MS_REC | syscall.MS_SHARED) { + return 254 + } } }