Merge pull request #48709 from jsafrane/gluster-autumount

Automatic merge from submit-queue (batch tested with PRs 48672, 47140, 48709, 48786, 48757)

glusterfs: retry without auto_unmount only when it's not supported

GlusterFS volume plugin should not blindly retry all failed mounts without
auto_unmount, it should retry them only when we are sure that auto_unmount
was the reason the first attempt failed.

@kubernetes/sig-storage-pr-reviews 
/assign @humblec 

```release-note
NONE
```
pull/6/head
Kubernetes Submit Queue 2017-07-12 09:02:55 -07:00 committed by GitHub
commit f5f9894efc
1 changed files with 15 additions and 16 deletions

View File

@ -344,24 +344,23 @@ func (b *glusterfsMounter) setUpAtInternal(dir string) error {
return nil
}
// Give a try without `auto_unmount mount option, because
// it could be that gluster fuse client is older version and
// mount.glusterfs is unaware of `auto_unmount`.
// Use a mount string without `auto_unmount``
autoMountOptions := make([]string, len(mountOptions))
for _, opt := range mountOptions {
if opt != "auto_unmount" {
autoMountOptions = append(autoMountOptions, opt)
const invalidOption = "Invalid option auto_unmount"
if dstrings.Contains(errs.Error(), invalidOption) {
// Give a try without `auto_unmount` mount option, because
// it could be that gluster fuse client is older version and
// mount.glusterfs is unaware of `auto_unmount`.
noAutoMountOptions := make([]string, len(mountOptions))
for _, opt := range mountOptions {
if opt != "auto_unmount" {
noAutoMountOptions = append(noAutoMountOptions, opt)
}
}
errs = b.mounter.Mount(ip+":"+b.path, dir, "glusterfs", noAutoMountOptions)
if errs == nil {
glog.Infof("glusterfs: successfully mounted %s", dir)
return nil
}
}
autoErr := b.mounter.Mount(ip+":"+b.path, dir, "glusterfs", autoMountOptions)
if autoErr == nil {
glog.Infof("glusterfs: successfully mounted %s", dir)
return nil
}
}
// Failed mount scenario.