Files
docker-cli/vendor/github.com/moby/sys/mountinfo/mountinfo.go
Sebastiaan van Stijn c318ec8a33 vendor: update docker/docker and moby/sys
diffs and relevant changes:

docker/docker: c2cc352355...af34b94a78
  - replace pkg/symlink with github.com/moby/sys/symlink

moby/sys: 6154f11e68...1bc8673b57

changes:
    - mount, mountinfo: Add support for OpenBSD in addition to FreeBSD
    - mount, mountinfo: Exclude macOS (darwin)
    - mount.RecursiveUnmount(): minor improvements
    - mount.RecursiveUnmount: add a fast path
    - mount: bump mountinfo to v0.3.1
    - mount: Some refactor and improved GoDoc about Windows support
    - mount: use MNT_* flags from golang.org/x/sys/unix on freebsd (reduces use of cgo)
    - mountinfo.Mounted: add fast path for Linux using openat2
    - mountinfo.Mounted: optimize by adding fast paths
    - mountinfo: correctness improvements
    - mountinfo: deprecate PidMountInfo
    - mountinfo: fix not showing package doc, typos
    - mountinfo: fix path unescaping
    - mountinfo: make GetMountinfoFromReader Linux-specific
    - mountinfo: rename FstypeFilter -> FSTypeFilter, fix FilterFunc docs
    - mountinfo: use idiomatic naming for fields
    - Migrate github.com/docker/docker/pkg/symlink

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-11-10 22:31:52 +01:00

64 lines
1.7 KiB
Go

package mountinfo
import (
"os"
)
// GetMounts retrieves a list of mounts for the current running process,
// with an optional filter applied (use nil for no filter).
func GetMounts(f FilterFunc) ([]*Info, error) {
return parseMountTable(f)
}
// Mounted determines if a specified path is a mount point.
//
// The argument must be an absolute path, with all symlinks resolved, and clean.
// One way to ensure it is to process the path using filepath.Abs followed by
// filepath.EvalSymlinks before calling this function.
func Mounted(path string) (bool, error) {
// root is always mounted
if path == string(os.PathSeparator) {
return true, nil
}
return mounted(path)
}
// Info reveals information about a particular mounted filesystem. This
// struct is populated from the content in the /proc/<pid>/mountinfo file.
type Info struct {
// ID is a unique identifier of the mount (may be reused after umount).
ID int
// Parent indicates the ID of the mount parent (or of self for the top of the
// mount tree).
Parent int
// Major indicates one half of the device ID which identifies the device class.
Major int
// Minor indicates one half of the device ID which identifies a specific
// instance of device.
Minor int
// Root of the mount within the filesystem.
Root string
// Mountpoint indicates the mount point relative to the process's root.
Mountpoint string
// Options represents mount-specific options.
Options string
// Optional represents optional fields.
Optional string
// FSType indicates the type of filesystem, such as EXT3.
FSType string
// Source indicates filesystem specific information or "none".
Source string
// VFSOptions represents per super block options.
VFSOptions string
}