//go:build linux package main import "syscall" func diskFree(path string) (free, total uint64, err error) { var st syscall.Statfs_t if err = syscall.Statfs(path, &st); err != nil { return } return st.Bavail * uint64(st.Bsize), st.Blocks * uint64(st.Bsize), nil } // isMountPoint reports whether path is a mount point (its device differs from its parent's). func isMountPoint(path string) bool { var a, b syscall.Stat_t if syscall.Stat(path, &a) != nil || syscall.Stat(path+"/..", &b) != nil { return false } return a.Dev != b.Dev }