Commit c20b4f7e authored by Jan Safranek's avatar Jan Safranek

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.
parent 5ca03d67
...@@ -344,24 +344,23 @@ func (b *glusterfsMounter) setUpAtInternal(dir string) error { ...@@ -344,24 +344,23 @@ func (b *glusterfsMounter) setUpAtInternal(dir string) error {
return nil return nil
} }
// Give a try without `auto_unmount mount option, because const invalidOption = "Invalid option auto_unmount"
// it could be that gluster fuse client is older version and if dstrings.Contains(errs.Error(), invalidOption) {
// mount.glusterfs is unaware of `auto_unmount`. // Give a try without `auto_unmount` mount option, because
// Use a mount string without `auto_unmount`` // it could be that gluster fuse client is older version and
// mount.glusterfs is unaware of `auto_unmount`.
autoMountOptions := make([]string, len(mountOptions)) noAutoMountOptions := make([]string, len(mountOptions))
for _, opt := range mountOptions { for _, opt := range mountOptions {
if opt != "auto_unmount" { if opt != "auto_unmount" {
autoMountOptions = append(autoMountOptions, opt) 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. // Failed mount scenario.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment