summaryrefslogtreecommitdiff
path: root/CREDITS
diff options
context:
space:
mode:
authorJessica Yu <jeyu@kernel.org>2020-11-27 10:09:39 +0100
committerJessica Yu <jeyu@kernel.org>2020-12-09 09:42:47 +0100
commit38dc717e97153e46375ee21797aa54777e5498f3 (patch)
tree3dacf41701ee773ffdd561766a9d0cde8e983c06 /CREDITS
parent2d26c716fc49f41a63e1efe8f1f772b0adeaacef (diff)
module: delay kobject uevent until after module init call
Apparently there has been a longstanding race between udev/systemd and the module loader. Currently, the module loader sends a uevent right after sysfs initialization, but before the module calls its init function. However, some udev rules expect that the module has initialized already upon receiving the uevent. This race has been triggered recently (see link in references) in some systemd mount unit files. For instance, the configfs module creates the /sys/kernel/config mount point in its init function, however the module loader issues the uevent before this happens. sys-kernel-config.mount expects to be able to mount /sys/kernel/config upon receipt of the module loading uevent, but if the configfs module has not called its init function yet, then this directory will not exist and the mount unit fails. A similar situation exists for sys-fs-fuse-connections.mount, as the fuse sysfs mount point is created during the fuse module's init function. If udev is faster than module initialization then the mount unit would fail in a similar fashion. To fix this race, delay the module KOBJ_ADD uevent until after the module has finished calling its init routine. References: https://github.com/systemd/systemd/issues/17586 Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Tested-By: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com> Signed-off-by: Jessica Yu <jeyu@kernel.org>
Diffstat (limited to 'CREDITS')
0 files changed, 0 insertions, 0 deletions