123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- // +build linux
- package mount
- // MakeShared ensures a mounted filesystem has the SHARED mount option enabled.
- // See the supported options in flags.go for further reference.
- func MakeShared(mountPoint string) error {
- return ensureMountedAs(mountPoint, "shared")
- }
- // MakeRShared ensures a mounted filesystem has the RSHARED mount option enabled.
- // See the supported options in flags.go for further reference.
- func MakeRShared(mountPoint string) error {
- return ensureMountedAs(mountPoint, "rshared")
- }
- // MakePrivate ensures a mounted filesystem has the PRIVATE mount option enabled.
- // See the supported options in flags.go for further reference.
- func MakePrivate(mountPoint string) error {
- return ensureMountedAs(mountPoint, "private")
- }
- // MakeRPrivate ensures a mounted filesystem has the RPRIVATE mount option
- // enabled. See the supported options in flags.go for further reference.
- func MakeRPrivate(mountPoint string) error {
- return ensureMountedAs(mountPoint, "rprivate")
- }
- // MakeSlave ensures a mounted filesystem has the SLAVE mount option enabled.
- // See the supported options in flags.go for further reference.
- func MakeSlave(mountPoint string) error {
- return ensureMountedAs(mountPoint, "slave")
- }
- // MakeRSlave ensures a mounted filesystem has the RSLAVE mount option enabled.
- // See the supported options in flags.go for further reference.
- func MakeRSlave(mountPoint string) error {
- return ensureMountedAs(mountPoint, "rslave")
- }
- // MakeUnbindable ensures a mounted filesystem has the UNBINDABLE mount option
- // enabled. See the supported options in flags.go for further reference.
- func MakeUnbindable(mountPoint string) error {
- return ensureMountedAs(mountPoint, "unbindable")
- }
- // MakeRUnbindable ensures a mounted filesystem has the RUNBINDABLE mount
- // option enabled. See the supported options in flags.go for further reference.
- 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
- }
- }
- if _, err = Mounted(mountPoint); err != nil {
- return err
- }
- return ForceMount("", mountPoint, "none", options)
- }
|