From a81f77047282db283141fe426dc7eaf82a7827d2 Mon Sep 17 00:00:00 2001 From: smileusd Date: Thu, 11 Apr 2019 11:17:40 +0800 Subject: [PATCH] add annotation about IsLikelyNotMountPoint can't to distinguish mounts and symbolic link --- pkg/util/mount/mount.go | 2 +- pkg/util/mount/mount_linux.go | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/util/mount/mount.go b/pkg/util/mount/mount.go index cc313909fc7..96dc68c9a03 100644 --- a/pkg/util/mount/mount.go +++ b/pkg/util/mount/mount.go @@ -53,7 +53,7 @@ type Interface interface { // is a mountpoint. // It should return ErrNotExist when the directory does not exist. // 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) // DeviceOpened determines if the device is in use elsewhere // on the system, i.e. still mounted. diff --git a/pkg/util/mount/mount_linux.go b/pkg/util/mount/mount_linux.go index 71ac88c2eb5..0f75d2184d5 100644 --- a/pkg/util/mount/mount_linux.go +++ b/pkg/util/mount/mount_linux.go @@ -228,6 +228,7 @@ func (mounter *Mounter) IsMountPointMatch(mp MountPoint, dir string) bool { // IsLikelyNotMountPoint determines if a directory is not a mountpoint. // 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. +// It also can not distinguish between mountpoints and symbolic links. // 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 // if of interest to you, don't use this function...