42cc2855ba
udev requests to start the fs mount units when their respective module is loaded. For that it monitors uevents of type "ADD" for the relevant fs modules. However the uevent is sent by the kernel too early, ie before the init() of the module is called hence before directories in /sys/fs/ are created. This patch workarounds adds "Requires/After=modprobe@<fs-module>.service" to the mount unit, which means that modprobe(8) will be called once the fs module is announced to be loaded. This sounds pointless, but given that modprobe only returns after the initialization of the module is complete, it should workaround the issue. As a side effect, the module will be automatically loaded if the mount unit is started manually. Fixes #17586.
31 lines
1.1 KiB
SYSTEMD
31 lines
1.1 KiB
SYSTEMD
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
#
|
|
# This file is part of systemd.
|
|
#
|
|
# systemd is free software; you can redistribute it and/or modify it
|
|
# under the terms of the GNU Lesser General Public License as published by
|
|
# the Free Software Foundation; either version 2.1 of the License, or
|
|
# (at your option) any later version.
|
|
|
|
[Unit]
|
|
Description=Kernel Configuration File System
|
|
Documentation=https://www.kernel.org/doc/Documentation/filesystems/configfs/configfs.txt
|
|
Documentation=https://www.freedesktop.org/wiki/Software/systemd/APIFileSystems
|
|
DefaultDependencies=no
|
|
ConditionCapability=CAP_SYS_RAWIO
|
|
Before=sysinit.target
|
|
|
|
# These dependencies are used to make certain that the module is fully
|
|
# loaded. Indeed udev starts this unit when it receives an uevent for the
|
|
# module but the kernel sends it too early, ie before the init() of the module
|
|
# is fully operational and /sys/kernel/config is created, see issue#17586.
|
|
|
|
After=modprobe@configfs.service
|
|
Requires=modprobe@configfs.service
|
|
|
|
[Mount]
|
|
What=configfs
|
|
Where=/sys/kernel/config
|
|
Type=configfs
|
|
Options=nosuid,nodev,noexec
|