浏览代码

pkg/mount: add MakeMount()

This function ensures the argument is the mount point
(i.e. if it's not, it bind mounts it to itself).

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
Kir Kolyshkin 6 年之前
父节点
当前提交
8abadb36fa
共有 1 个文件被更改,包括 13 次插入6 次删除
  1. 13 6
      pkg/mount/sharedsubtree_linux.go

+ 13 - 6
pkg/mount/sharedsubtree_linux.go

@@ -48,16 +48,23 @@ func MakeRUnbindable(mountPoint string) error {
 	return ensureMountedAs(mountPoint, "runbindable")
 }
 
-func ensureMountedAs(mountPoint, options string) error {
-	mounted, err := Mounted(mountPoint)
+// MakeMount ensures that the file or directory given is a mount point,
+// bind mounting it to itself it case it is not.
+func MakeMount(mnt string) error {
+	mounted, err := Mounted(mnt)
 	if err != nil {
 		return err
 	}
+	if mounted {
+		return nil
+	}
+
+	return Mount(mnt, mnt, "none", "bind")
+}
 
-	if !mounted {
-		if err := Mount(mountPoint, mountPoint, "none", "bind"); err != nil {
-			return err
-		}
+func ensureMountedAs(mountPoint, options string) error {
+	if err := MakeMount(mountPoint); err != nil {
+		return err
 	}
 
 	return ForceMount("", mountPoint, "none", options)