Merge pull request #68741 from jsafrane/fix-var-symlink
Fixed subpath cleanup when /var/lib/kubelet is a symlink.
This commit is contained in:
		@@ -251,9 +251,14 @@ func GetDeviceNameFromMount(mounter Interface, mountPath string) (string, int, e
 | 
			
		||||
// It is more extensive than IsLikelyNotMountPoint
 | 
			
		||||
// and it detects bind mounts in linux
 | 
			
		||||
func IsNotMountPoint(mounter Interface, file string) (bool, error) {
 | 
			
		||||
	// Resolve any symlinks in file, kernel would do the same and use the resolved path in /proc/mounts
 | 
			
		||||
	resolvedFile, err := mounter.EvalHostSymlinks(file)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return true, err
 | 
			
		||||
	}
 | 
			
		||||
	// IsLikelyNotMountPoint provides a quick check
 | 
			
		||||
	// to determine whether file IS A mountpoint
 | 
			
		||||
	notMnt, notMntErr := mounter.IsLikelyNotMountPoint(file)
 | 
			
		||||
	notMnt, notMntErr := mounter.IsLikelyNotMountPoint(resolvedFile)
 | 
			
		||||
	if notMntErr != nil && os.IsPermission(notMntErr) {
 | 
			
		||||
		// We were not allowed to do the simple stat() check, e.g. on NFS with
 | 
			
		||||
		// root_squash. Fall back to /proc/mounts check below.
 | 
			
		||||
@@ -274,7 +279,7 @@ func IsNotMountPoint(mounter Interface, file string) (bool, error) {
 | 
			
		||||
		return notMnt, mountPointsErr
 | 
			
		||||
	}
 | 
			
		||||
	for _, mp := range mountPoints {
 | 
			
		||||
		if mounter.IsMountPointMatch(mp, file) {
 | 
			
		||||
		if mounter.IsMountPointMatch(mp, resolvedFile) {
 | 
			
		||||
			notMnt = false
 | 
			
		||||
			break
 | 
			
		||||
		}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user