|
@@ -2,7 +2,39 @@
|
|
|
|
|
|
package mount
|
|
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 {
|
|
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)
|
|
mounted, err := Mounted(mountPoint)
|
|
if err != nil {
|
|
if err != nil {
|
|
return err
|
|
return err
|
|
@@ -13,6 +45,10 @@ func MakePrivate(mountPoint string) error {
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ mounted, err = Mounted(mountPoint)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
|
|
- return ForceMount("", mountPoint, "none", "private")
|
|
|
|
|
|
+ return ForceMount("", mountPoint, "none", options)
|
|
}
|
|
}
|