fix(mount): call sync before/after operations (#288)

* fix(mount): call sync after mount ops

Signed-off-by: mudler <mudler@kairos.io>

* refactor(mount): replace calls wrapped with sync

Signed-off-by: mudler <mudler@kairos.io>

* be consistent

Signed-off-by: mudler <mudler@kairos.io>

* lint fixes

Signed-off-by: mudler <mudler@kairos.io>

---------

Signed-off-by: mudler <mudler@kairos.io>
This commit is contained in:
Ettore Di Giacinto
2024-04-19 12:01:16 +02:00
committed by GitHub
parent 4916e6dba7
commit d14a047aa6
4 changed files with 32 additions and 17 deletions

View File

@@ -70,9 +70,9 @@ func (c *Chroot) Prepare() error {
// For example you can also have a cdrom device mounted under /dev/sr0 or /dev/cdrom and we dont know how to find it and mark it private
switch {
case mnt == "/sys", mnt == "/dev", mnt == "/run":
err = syscall.Mount(mnt, mountPoint, "", syscall.MS_BIND, "")
err = Mount(mnt, mountPoint, "", syscall.MS_BIND, "")
default:
err = syscall.Mount(mnt, mountPoint, "", syscall.MS_BIND|syscall.MS_REC, "")
err = Mount(mnt, mountPoint, "", syscall.MS_BIND|syscall.MS_REC, "")
}
if err != nil {
@@ -80,7 +80,7 @@ func (c *Chroot) Prepare() error {
return err
}
// "remount" with private so unmount events do not propagate
err = syscall.Mount("", mountPoint, "", syscall.MS_PRIVATE, "")
err = Mount("", mountPoint, "", syscall.MS_PRIVATE, "")
if err != nil {
Log.Err(err).Str("where", mountPoint).Str("what", mnt).Msg("Mounting chroot bind")
return err