// +build linux package mount func MakeShared(mountPoint string) error { return ensureMountedAs(mountPoint, "shared") } func MakeRShared(mountPoint string) error { return ensureMountedAs(mountPoint, "rshared") } func MakePrivate(mountPoint string) error { return ensureMountedAs(mountPoint, "private") } func MakeRPrivate(mountPoint string) error { return ensureMountedAs(mountPoint, "rprivate") } func MakeSlave(mountPoint string) error { return ensureMountedAs(mountPoint, "slave") } func MakeRSlave(mountPoint string) error { return ensureMountedAs(mountPoint, "rslave") } func MakeUnbindable(mountPoint string) error { return ensureMountedAs(mountPoint, "unbindable") } func MakeRUnbindable(mountPoint string) error { return ensureMountedAs(mountPoint, "runbindable") } func ensureMountedAs(mountPoint, options string) error { mounted, err := Mounted(mountPoint) if err != nil { return err } if !mounted { if err := Mount(mountPoint, mountPoint, "none", "bind,rw"); err != nil { return err } } mounted, err = Mounted(mountPoint) if err != nil { return err } return ForceMount("", mountPoint, "none", options) }