File tree Expand file tree Collapse file tree 1 file changed +10
-4
lines changed
Expand file tree Collapse file tree 1 file changed +10
-4
lines changed Original file line number Diff line number Diff 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}
You can’t perform that action at this time.
0 commit comments