aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pkg/mountmanager/manager.go10
1 files changed, 6 insertions, 4 deletions
diff --git a/pkg/mountmanager/manager.go b/pkg/mountmanager/manager.go
index 26dda18..420300e 100644
--- a/pkg/mountmanager/manager.go
+++ b/pkg/mountmanager/manager.go
@@ -97,6 +97,12 @@ func (m *Manager) Unmount(req *UnmountRequest) (*UnmountResponse, error) {
return &UnmountResponse{}, nil
}
+ if ok, err := mountutil.IsMountPoint(entry.targetPath); ok || mount.IsCorruptedMnt(err) {
+ if err = mountutil.Unmount(entry.targetPath); err != nil {
+ return &UnmountResponse{}, err
+ }
+ }
+
defer os.RemoveAll(entry.cacheDir)
if err := entry.process.stop(); err != nil {
@@ -266,10 +272,6 @@ func (p *weedMountProcess) wait() {
}
func (p *weedMountProcess) stop() error {
- if p.cmd.Process == nil {
- return nil
- }
-
if err := p.cmd.Process.Signal(syscall.SIGTERM); err != nil && err != os.ErrProcessDone {
glog.Warningf("sending SIGTERM to weed mount failed: %v", err)
}