Skip to content

Commit 586b8b9

Browse files
authored
Merge branch 'master' into master
2 parents b2867cf + 2e5c6b0 commit 586b8b9

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

netshare/drivers/nfs.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@ func (n nfsDriver) Mount(r volume.MountRequest) volume.Response {
5656

5757
if n.mountm.HasMount(resolvedName) && n.mountm.Count(resolvedName) > 0 {
5858
log.Infof("Using existing NFS volume mount: %s", hostdir)
59-
if err := run(fmt.Sprintf("mountpoint -q %s", hostdir)); err != nil {
59+
n.mountm.Increment(resolvedName)
60+
if err := run(fmt.Sprintf("grep -c %s /proc/mounts", hostdir)); err != nil {
6061
log.Infof("Existing NFS volume not mounted, force remount.")
6162
} else {
6263
n.mountm.Increment(resolvedName)
@@ -120,9 +121,14 @@ func (n nfsDriver) Unmount(r volume.UnmountRequest) volume.Response {
120121

121122
n.mountm.DeleteIfNotManaged(resolvedName)
122123

123-
if err := os.RemoveAll(hostdir); err != nil {
124-
return volume.Response{Err: err.Error()}
125-
}
124+
// Check if directory is empty. This command will return "err" if empty
125+
if err := run(fmt.Sprintf("ls -1 %s | grep .", hostdir)); err == nil {
126+
log.Warnf("Directory %s not empty after unmount. Skipping RemoveAll call.", hostdir)
127+
} else {
128+
if err := os.RemoveAll(hostdir); err != nil {
129+
return volume.Response{Err: err.Error()}
130+
}
131+
}
126132

127133
return volume.Response{}
128134
}

0 commit comments

Comments
 (0)