浏览代码

graphdriver.Mounted(): ignore ENOENT

In case statfs() returns ENOENT, do not return an error, but rather
treat this as "not mounted".

Related to commit d42dbdd3d48d.

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
Kir Kolyshkin 6 年之前
父节点
当前提交
72ceac6a74
共有 2 个文件被更改,包括 3 次插入3 次删除
  1. 0 3
      daemon/graphdriver/aufs/aufs.go
  2. 3 0
      daemon/graphdriver/driver_linux.go

+ 0 - 3
daemon/graphdriver/aufs/aufs.go

@@ -313,9 +313,6 @@ func (a *Driver) Remove(id string) error {
 	for {
 	for {
 		mounted, err := a.mounted(mountpoint)
 		mounted, err := a.mounted(mountpoint)
 		if err != nil {
 		if err != nil {
-			if os.IsNotExist(err) {
-				break
-			}
 			return err
 			return err
 		}
 		}
 		if !mounted {
 		if !mounted {

+ 3 - 0
daemon/graphdriver/driver_linux.go

@@ -118,6 +118,9 @@ func (c *defaultChecker) IsMounted(path string) bool {
 func Mounted(fsType FsMagic, mountPath string) (bool, error) {
 func Mounted(fsType FsMagic, mountPath string) (bool, error) {
 	var buf unix.Statfs_t
 	var buf unix.Statfs_t
 	if err := unix.Statfs(mountPath, &buf); err != nil {
 	if err := unix.Statfs(mountPath, &buf); err != nil {
+		if err == unix.ENOENT { // not exist, thus not mounted
+			err = nil
+		}
 		return false, err
 		return false, err
 	}
 	}
 	return FsMagic(buf.Type) == fsType, nil
 	return FsMagic(buf.Type) == fsType, nil