in cmd/mountv1.go [286:337]
func parseFuseConfig(config []string) error {
for _, v := range config {
parameter := strings.Split(v, "=")
if len(parameter) > 2 || len(parameter) <= 0 {
return errors.New(common.FuseAllowedFlags)
}
v = strings.TrimSpace(v)
if ignoreFuseOptions(v) {
continue
} else if v == "allow_other" || v == "allow_other=true" {
bfv2AllowOtherOption = true
} else if v == "allow_other=false" {
bfv2AllowOtherOption = false
} else if v == "nonempty" {
bfv2NonEmptyMountOption = true
} else if strings.HasPrefix(v, "attr_timeout=") {
timeout, err := strconv.ParseUint(parameter[1], 10, 32)
if err != nil {
return fmt.Errorf("failed to parse attr_timeout [%s]", err.Error())
}
bfv2FuseConfigOptions.AttributeExpiration = uint32(timeout)
} else if strings.HasPrefix(v, "entry_timeout=") {
timeout, err := strconv.ParseUint(parameter[1], 10, 32)
if err != nil {
return fmt.Errorf("failed to parse entry_timeout [%s]", err.Error())
}
bfv2FuseConfigOptions.EntryExpiration = uint32(timeout)
} else if strings.HasPrefix(v, "negative_timeout=") {
timeout, err := strconv.ParseUint(parameter[1], 10, 32)
if err != nil {
return fmt.Errorf("failed to parse negative_timeout [%s]", err.Error())
}
bfv2FuseConfigOptions.NegativeEntryExpiration = uint32(timeout)
} else if v == "ro" {
bfv2ReadOnlyOption = true
} else if v == "allow_root" {
bfv2FuseConfigOptions.DefaultPermission = 700
} else if strings.HasPrefix(v, "umask=") {
permission, err := strconv.ParseUint(parameter[1], 10, 32)
if err != nil {
return fmt.Errorf("failed to parse umask [%s]", err.Error())
}
perm := ^uint32(permission) & 777
bfv2FuseConfigOptions.DefaultPermission = perm
} else {
return errors.New(common.FuseAllowedFlags)
}
}
return nil
}