reboot: disable usermodehelper to prevent fs access
In case CONFIG_UEVENT_HELPER_PATH is not set to "", which it should be on every system, the kernel forks processes during shutdown, which try to access the rootfs, even when the binary does not exist. It causes exceptions and long delays in the disk driver, which gets read requests at the time it tries to shut down the disk. This patch disables all kernel-forked processes during reboot to allow a clean poweroff. Cc: Tejun Heo <htejun@gmail.com> Tested-By: Anton Guda <atu@dmeti.dp.ua> Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Родитель
aabb6e1531
Коммит
b50fa7c807
|
@ -314,6 +314,7 @@ void kernel_restart_prepare(char *cmd)
|
|||
{
|
||||
blocking_notifier_call_chain(&reboot_notifier_list, SYS_RESTART, cmd);
|
||||
system_state = SYSTEM_RESTART;
|
||||
usermodehelper_disable();
|
||||
device_shutdown();
|
||||
sysdev_shutdown();
|
||||
syscore_shutdown();
|
||||
|
@ -344,6 +345,7 @@ static void kernel_shutdown_prepare(enum system_states state)
|
|||
blocking_notifier_call_chain(&reboot_notifier_list,
|
||||
(state == SYSTEM_HALT)?SYS_HALT:SYS_POWER_OFF, NULL);
|
||||
system_state = state;
|
||||
usermodehelper_disable();
|
||||
device_shutdown();
|
||||
}
|
||||
/**
|
||||
|
|
Загрузка…
Ссылка в новой задаче