@@ -265,16 +265,19 @@ func (l *LinstorDriver) Get(req *volume.GetRequest) (*volume.GetResponse, error)
265
265
return nil , err
266
266
}
267
267
ctx := context .Background ()
268
- resourceDef , err := c .ResourceDefinitions .Get (ctx , req .Name )
269
- if err != nil {
268
+ name := req .Name
269
+ resourceDef , err := c .ResourceDefinitions .Get (ctx , name )
270
+ if err == nil {
271
+ if resourceDef .Props [pluginFlagKey ] != pluginFlagValue {
272
+ return nil , fmt .Errorf ("Volume '%s' is not managed by this plugin" , name )
273
+ }
274
+ name = resourceDef .Name
275
+ } else if l .mountPoint (name ) == "" {
270
276
return nil , err
271
277
}
272
- if resourceDef .Props [pluginFlagKey ] != pluginFlagValue {
273
- return nil , fmt .Errorf ("Volume '%s' is not managed by this plugin" , req .Name )
274
- }
275
278
vol := & volume.Volume {
276
- Name : resourceDef . Name ,
277
- Mountpoint : l .mountPoint (resourceDef . Name ),
279
+ Name : name ,
280
+ Mountpoint : l .mountPoint (name ),
278
281
}
279
282
return & volume.GetResponse {vol }, nil
280
283
}
@@ -380,7 +383,7 @@ func (l *LinstorDriver) Mount(req *volume.MountRequest) (*volume.MountResponse,
380
383
func (l * LinstorDriver ) Unmount (req * volume.UnmountRequest ) error {
381
384
target := l .realMountPath (req .Name )
382
385
notMounted , err := l .mounter .IsNotMountPoint (target )
383
- if err != nil || notMounted {
386
+ if ( err != nil || notMounted ) && ! mount . IsCorruptedMnt ( err ) {
384
387
return err
385
388
}
386
389
if err = l .mounter .Unmount (target ); err != nil {
@@ -429,7 +432,7 @@ func (l *LinstorDriver) reportedMountPath(name string) string {
429
432
func (l * LinstorDriver ) mountPoint (name string ) string {
430
433
path := l .realMountPath (name )
431
434
notMounted , err := l .mounter .IsNotMountPoint (path )
432
- if err != nil || notMounted {
435
+ if ( err != nil || notMounted ) && ! mount . IsCorruptedMnt ( err ) {
433
436
return ""
434
437
}
435
438
return l .reportedMountPath (name )
0 commit comments