From abe92bac90030a0120f7f6cc5d90aaffcf52e4f4 Mon Sep 17 00:00:00 2001 From: Viktor Kuzmin Date: Sat, 2 Apr 2022 16:22:35 +0300 Subject: Do not fail if path is already unmounted --- pkg/driver/mounter.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkg/driver/mounter.go b/pkg/driver/mounter.go index 82da5f6..9d4aff3 100644 --- a/pkg/driver/mounter.go +++ b/pkg/driver/mounter.go @@ -38,9 +38,14 @@ func fuseMount(path string, command string, args []string) error { } func fuseUnmount(path string) error { - if err := mount.New("").Unmount(path); err != nil { - return err + m := mount.New("") + + if ok, _ := m.IsLikelyNotMountPoint(path); !ok { + if err := m.Unmount(path); err != nil { + return err + } } + // as fuse quits immediately, we will try to wait until the process is done process, err := findFuseMountProcess(path) if err != nil { -- cgit v1.2.3 From 91b04a4cfb6501a49e1773641c0dca3eaa31ee72 Mon Sep 17 00:00:00 2001 From: Viktor Kuzmin Date: Sun, 3 Apr 2022 10:41:26 +0300 Subject: Check for corrupted mount before unmount --- pkg/driver/mounter.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/driver/mounter.go b/pkg/driver/mounter.go index 9d4aff3..e0a6283 100644 --- a/pkg/driver/mounter.go +++ b/pkg/driver/mounter.go @@ -40,7 +40,7 @@ func fuseMount(path string, command string, args []string) error { func fuseUnmount(path string) error { m := mount.New("") - if ok, _ := m.IsLikelyNotMountPoint(path); !ok { + if ok, err := m.IsLikelyNotMountPoint(path); !ok || mount.IsCorruptedMnt(err) { if err := m.Unmount(path); err != nil { return err } -- cgit v1.2.3