- /*
- * Set the desired scheduler with a three attempt retry for
- * -EFAULT which has been observed to occur spuriously.
- */
- sprintf(sh_cmd, "%s \"%s\" >/sys/block/%s/queue/scheduler",
- "/bin/echo", elevator, device);
-
- while (++count <= 3) {
- error = call_usermodehelper(sh_path, argv, envp, 1);
- if ((error == 0) || (error != -EFAULT))
- break;
- }
-
+ argv[2] = kmem_asprintf(SET_SCHEDULER_CMD, device, elevator);
+ error = call_usermodehelper(argv[0], argv, envp, 1);