From ff214b82ac88ac89b28cb9be43062cac954d798b Mon Sep 17 00:00:00 2001 From: Tony Nguyen Date: Sun, 6 Oct 2019 16:40:02 -0600 Subject: [PATCH] Use UMH_WAIT_EXEC with call_usermodehelper() to reliably set elevator On Ubuntu 18.04, disk elevator is no longer set to `noop` with the change to use UMH_NO_WAIT flag. This change uses UMH_WAIT_EXEC flag, wait for exec, and disk elevator is now reliably set on pool creation and reboot. Signed-off-by: Tony Nguyen --- module/os/linux/zfs/vdev_disk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/os/linux/zfs/vdev_disk.c b/module/os/linux/zfs/vdev_disk.c index 8490f1db16f1..dfa5e3a668ae 100644 --- a/module/os/linux/zfs/vdev_disk.c +++ b/module/os/linux/zfs/vdev_disk.c @@ -219,7 +219,7 @@ vdev_elevator_switch(vdev_t *v, char *elevator) char *envp[] = { NULL }; argv[2] = kmem_asprintf(SET_SCHEDULER_CMD, device, elevator); - error = call_usermodehelper(argv[0], argv, envp, UMH_NO_WAIT); + error = call_usermodehelper(argv[0], argv, envp, UMH_WAIT_EXEC); strfree(argv[2]); #endif /* HAVE_ELEVATOR_CHANGE */ if (error) {