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. In case of any // error, false (and an error) is returned. // // If a non-existent path is specified, an appropriate error is returned. // In case the caller is not interested in this particular error, it should // be handled separately using e.g. errors.Is(err, fs.ErrNotExist). 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 is the ID of the parent mount (or of self for the root // of this mount namespace's mount tree). Parent int // Major and Minor are the major and the minor components of the Dev // field of unix.Stat_t structure returned by unix.*Stat calls for // files on this filesystem. Major, Minor int // Root is the pathname of the directory in the filesystem which forms // the root of this mount. Root string // Mountpoint is the pathname of the mount point relative to the // process's root directory. Mountpoint string // Options is a comma-separated list of mount options. Options string // Optional are zero or more fields of the form "tag[:value]", // separated by a space. Currently, the possible optional fields are // "shared", "master", "propagate_from", and "unbindable". For more // information, see mount_namespaces(7) Linux man page. Optional string // FSType is the filesystem type in the form "type[.subtype]". FSType string // Source is filesystem-specific information, or "none". Source string // VFSOptions is a comma-separated list of superblock options. VFSOptions string }