Merge pull request #74880 from smileusd/fix-IsLikelyNotMountPoint-function

distinguish between mountpoints and symbolic link in IsNotMountPoint
This commit is contained in:
Kubernetes Prow Robot 2019-05-22 04:00:12 -07:00 committed by GitHub
commit d8c3348520
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 2 additions and 1 deletions

View File

@ -53,7 +53,7 @@ type Interface interface {
// is a mountpoint. // is a mountpoint.
// It should return ErrNotExist when the directory does not exist. // It should return ErrNotExist when the directory does not exist.
// IsLikelyNotMountPoint does NOT properly detect all mountpoint types // IsLikelyNotMountPoint does NOT properly detect all mountpoint types
// most notably linux bind mounts. // most notably linux bind mounts and symbolic link.
IsLikelyNotMountPoint(file string) (bool, error) IsLikelyNotMountPoint(file string) (bool, error)
// DeviceOpened determines if the device is in use elsewhere // DeviceOpened determines if the device is in use elsewhere
// on the system, i.e. still mounted. // on the system, i.e. still mounted.

View File

@ -228,6 +228,7 @@ func (mounter *Mounter) IsMountPointMatch(mp MountPoint, dir string) bool {
// 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.
// It also can not distinguish between mountpoints and symbolic links.
// mkdir /tmp/a /tmp/b; mount --bind /tmp/a /tmp/b; IsLikelyNotMountPoint("/tmp/b") // mkdir /tmp/a /tmp/b; mount --bind /tmp/a /tmp/b; IsLikelyNotMountPoint("/tmp/b")
// will return true. When in fact /tmp/b is a mount point. If this situation // will return true. When in fact /tmp/b is a mount point. If this situation
// if of interest to you, don't use this function... // if of interest to you, don't use this function...