in pkg/csi_mounter/csi_mounter.go [154:189]
func updateSysfsConfig(targetMountPath string, sysfsBDI map[string]int64) error {
// Command will hang until mount completes.
cmd := exec.Command("mountpoint", "-d", targetMountPath)
output, err := cmd.CombinedOutput()
if err != nil {
klog.Errorf("Error executing mountpoint command on target path %s: %v", targetMountPath, err)
var exitError *exec.ExitError
if errors.As(err, &exitError) {
klog.Errorf("Exit code: %d", exitError.ExitCode())
}
return err
}
targetDevice := strings.TrimSpace(string(output))
klog.Infof("Output of mountpoint for target mount path %s: %s", targetMountPath, output)
for key, value := range sysfsBDI {
// Update the target value.
sysfsBDIPath := filepath.Join("/sys/class/bdi/", targetDevice, key)
file, err := os.OpenFile(sysfsBDIPath, os.O_WRONLY|os.O_TRUNC, 0o644)
if err != nil {
return fmt.Errorf("failed to open file %q: %w", sysfsBDIPath, err)
}
defer file.Close()
_, err = file.WriteString(fmt.Sprintf("%d\n", value))
if err != nil {
return fmt.Errorf("failed to write to file %q: %w", "echo", err)
}
klog.Infof("Updated %s to %d", sysfsBDIPath, value)
}
return nil
}