Internalize mount.Interface.IsMountPointMatch

IsMountPointMatch() had no callers outside of the mount package, and has
internal implementation details. This patch makes it no longer be
public.
This commit is contained in:
Travis Rhoden 2019-08-23 14:57:24 -06:00
parent 038e5fad75
commit a30ba6197d
No known key found for this signature in database
GPG Key ID: 6B4B921EC4ECF91A
9 changed files with 14 additions and 33 deletions

View File

@ -137,11 +137,6 @@ func (f *FakeMounter) List() ([]MountPoint, error) {
return f.MountPoints, nil return f.MountPoints, nil
} }
// IsMountPointMatch tests if dir and mp are the same path
func (f *FakeMounter) IsMountPointMatch(mp MountPoint, dir string) bool {
return mp.Path == dir
}
// IsLikelyNotMountPoint determines whether a path is a mountpoint by checking // IsLikelyNotMountPoint determines whether a path is a mountpoint by checking
// if the absolute path to file is in the in-memory mountpoints // if the absolute path to file is in the in-memory mountpoints
func (f *FakeMounter) IsLikelyNotMountPoint(file string) (bool, error) { func (f *FakeMounter) IsLikelyNotMountPoint(file string) (bool, error) {

View File

@ -41,8 +41,6 @@ type Interface interface {
// consistent (i.e. it could change between chunked reads). This is guaranteed // consistent (i.e. it could change between chunked reads). This is guaranteed
// to be consistent. // to be consistent.
List() ([]MountPoint, error) List() ([]MountPoint, error)
// IsMountPointMatch determines if the mountpoint matches the dir.
IsMountPointMatch(mp MountPoint, dir string) bool
// IsLikelyNotMountPoint uses heuristics to determine if a directory // IsLikelyNotMountPoint uses heuristics to determine if a directory
// is not a mountpoint. // is not a mountpoint.
// It should return ErrNotExist when the directory does not exist. // It should return ErrNotExist when the directory does not exist.
@ -162,7 +160,7 @@ func GetDeviceNameFromMount(mounter Interface, mountPath string) (string, int, e
// IsNotMountPoint detects bind mounts in linux. // IsNotMountPoint detects bind mounts in linux.
// IsNotMountPoint enumerates all the mountpoints using List() and // IsNotMountPoint enumerates all the mountpoints using List() and
// the list of mountpoints may be large, then it uses // the list of mountpoints may be large, then it uses
// IsMountPointMatch to evaluate whether the directory is a mountpoint. // isMountPointMatch to evaluate whether the directory is a mountpoint.
func IsNotMountPoint(mounter Interface, file string) (bool, error) { func IsNotMountPoint(mounter Interface, file string) (bool, error) {
// IsLikelyNotMountPoint provides a quick check // IsLikelyNotMountPoint provides a quick check
// to determine whether file IS A mountpoint. // to determine whether file IS A mountpoint.
@ -195,7 +193,7 @@ func IsNotMountPoint(mounter Interface, file string) (bool, error) {
return notMnt, mountPointsErr return notMnt, mountPointsErr
} }
for _, mp := range mountPoints { for _, mp := range mountPoints {
if mounter.IsMountPointMatch(mp, resolvedFile) { if isMountPointMatch(mp, resolvedFile) {
notMnt = false notMnt = false
break break
} }

View File

@ -131,3 +131,10 @@ func parseMountInfo(filename string) ([]mountInfo, error) {
} }
return infos, nil return infos, nil
} }
// isMountPointMatch returns true if the path in mp is the same as dir.
// Handles case where mountpoint dir has been renamed due to stale NFS mount.
func isMountPointMatch(mp MountPoint, dir string) bool {
deletedDir := fmt.Sprintf("%s\\040(deleted)", dir)
return ((mp.Path == dir) || (mp.Path == deletedDir))
}

View File

@ -91,3 +91,8 @@ func ValidateDiskNumber(disk string) error {
return nil return nil
} }
// isMountPointMatch determines if the mountpoint matches the dir
func isMountPointMatch(mp MountPoint, dir string) bool {
return mp.Path == dir
}

View File

@ -213,12 +213,6 @@ func (*Mounter) List() ([]MountPoint, error) {
return ListProcMounts(procMountsPath) return ListProcMounts(procMountsPath)
} }
// IsMountPointMatch returns true if the path in mp is the same as dir
func (mounter *Mounter) IsMountPointMatch(mp MountPoint, dir string) bool {
deletedDir := fmt.Sprintf("%s\\040(deleted)", dir)
return ((mp.Path == dir) || (mp.Path == deletedDir))
}
// IsLikelyNotMountPoint determines if a directory is not a mountpoint. // IsLikelyNotMountPoint determines if a directory is not a mountpoint.
// It is fast but not necessarily ALWAYS correct. If the path is in fact // It is fast but not necessarily ALWAYS correct. If the path is in fact
// a bind mount from one part of a mount to another it will not be detected. // a bind mount from one part of a mount to another it will not be detected.

View File

@ -53,11 +53,6 @@ func (mounter *Mounter) List() ([]MountPoint, error) {
return []MountPoint{}, errUnsupported return []MountPoint{}, errUnsupported
} }
// IsMountPointMatch returns true if the path in mp is the same as dir
func (mounter *Mounter) IsMountPointMatch(mp MountPoint, dir string) bool {
return (mp.Path == dir)
}
// IsLikelyNotMountPoint always returns an error on unsupported platforms // IsLikelyNotMountPoint always returns an error on unsupported platforms
func (mounter *Mounter) IsLikelyNotMountPoint(file string) (bool, error) { func (mounter *Mounter) IsLikelyNotMountPoint(file string) (bool, error) {
return true, errUnsupported return true, errUnsupported

View File

@ -164,11 +164,6 @@ func (mounter *Mounter) List() ([]MountPoint, error) {
return []MountPoint{}, nil return []MountPoint{}, nil
} }
// IsMountPointMatch determines if the mountpoint matches the dir
func (mounter *Mounter) IsMountPointMatch(mp MountPoint, dir string) bool {
return mp.Path == dir
}
// IsLikelyNotMountPoint determines if a directory is not a mountpoint. // IsLikelyNotMountPoint determines if a directory is not a mountpoint.
func (mounter *Mounter) IsLikelyNotMountPoint(file string) (bool, error) { func (mounter *Mounter) IsLikelyNotMountPoint(file string) (bool, error) {
stat, err := os.Lstat(file) stat, err := os.Lstat(file)

View File

@ -91,10 +91,6 @@ func (m *execMounter) List() ([]mount.MountPoint, error) {
return m.wrappedMounter.List() return m.wrappedMounter.List()
} }
func (m *execMounter) IsMountPointMatch(mp mount.MountPoint, dir string) bool {
return m.wrappedMounter.IsMountPointMatch(mp, dir)
}
// IsLikelyNotMountPoint determines whether a path is a mountpoint. // IsLikelyNotMountPoint determines whether a path is a mountpoint.
func (m *execMounter) IsLikelyNotMountPoint(file string) (bool, error) { func (m *execMounter) IsLikelyNotMountPoint(file string) (bool, error) {
return m.wrappedMounter.IsLikelyNotMountPoint(file) return m.wrappedMounter.IsLikelyNotMountPoint(file)

View File

@ -46,10 +46,6 @@ func (mounter *execMounter) List() ([]mount.MountPoint, error) {
return []mount.MountPoint{}, nil return []mount.MountPoint{}, nil
} }
func (mounter *execMounter) IsMountPointMatch(mp mount.MountPoint, dir string) bool {
return (mp.Path == dir)
}
func (mounter *execMounter) IsLikelyNotMountPoint(file string) (bool, error) { func (mounter *execMounter) IsLikelyNotMountPoint(file string) (bool, error) {
return true, nil return true, nil
} }