ソースを参照

Fix use of mounted() in overlay.

Handle error and mounted case separately.

Signed-off-by: Anusha Ragunathan <anusha@docker.com>
Anusha Ragunathan 9 年 前
コミット
57ca2a2101
1 ファイル変更10 行追加0 行削除
  1. 10 0
      daemon/graphdriver/overlay/overlay.go

+ 10 - 0
daemon/graphdriver/overlay/overlay.go

@@ -365,6 +365,16 @@ func (d *Driver) Get(id string, mountLabel string) (string, error) {
 	mergedDir := path.Join(dir, "merged")
 
 	opts := fmt.Sprintf("lowerdir=%s,upperdir=%s,workdir=%s", lowerDir, upperDir, workDir)
+
+	// if it's mounted already, just return
+	mounted, err := d.mounted(mergedDir)
+	if err != nil {
+		return "", err
+	}
+	if mounted {
+		return mergedDir, nil
+	}
+
 	if err := syscall.Mount("overlay", mergedDir, "overlay", 0, label.FormatMountLabel(opts, mountLabel)); err != nil {
 		return "", fmt.Errorf("error creating overlay mount to %s: %v", mergedDir, err)
 	}