Merge pull request #31034 from jingxu97/unmount-8-19

Automatic merge from submit-queue

Add ismounted check in unmountpath function

This change is to fix PR #30930. The function should check if the
mountpath is still mounted or not. If it is not, it should continue with
removing the directory instead of returning error.
This commit is contained in:
Kubernetes Submit Queue 2016-08-19 22:18:28 -07:00 committed by GitHub
commit d0cca393d7

View File

@ -73,14 +73,28 @@ func UnmountPath(mountPath string, mounter mount.Interface) error {
return nil
}
err := mounter.Unmount(mountPath)
if err == nil {
// Only delete directory on successful unmount
glog.V(5).Infof("Unmounted %q. Deleting path.", mountPath)
notMnt, err := mounter.IsLikelyNotMountPoint(mountPath)
if err != nil {
return err
}
if notMnt {
glog.Warningf("Warning: %q is not a mountpoint, deleting", mountPath)
return os.Remove(mountPath)
}
return err
// Unmount the mount path
if err := mounter.Unmount(mountPath); err != nil {
return err
}
notMnt, mntErr := mounter.IsLikelyNotMountPoint(mountPath)
if mntErr != nil {
return err
}
if notMnt {
glog.V(4).Info("%q is unmounted, deleting the directory", mountPath)
return os.Remove(mountPath)
}
return nil
}
// PathExists returns true if the specified path exists.