Re: [PATCH 7/8] ensure pre-mount (and resume) run before root fsck

Harald Hoyer
2015-07-01T15:47:54Z

On 30.06.2015 01:49, Alexander Tsoy wrote:
> В Fri, 26 Jun 2015 16:55:56 +0200
> Thomas Renninger <trenn-l3A5Bk7waGM@public.gmane.org> пишет:
>
>> From: Andrei Borzenkov <arvidjaar-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>>
>> References:
>> https://bugzilla.suse.com/show_bug.cgi?id=906592
>> Signed-off-by: Thomas Renninger <trenn-l3A5Bk7waGM@public.gmane.org>
>> ---
>> modules.d/98dracut-systemd/rootfs-generator.sh | 18
>> ++++++++++++++++++ 1 file changed, 18 insertions(+)
>>
>> diff --git a/modules.d/98dracut-systemd/rootfs-generator.sh
>> b/modules.d/98dracut-systemd/rootfs-generator.sh index
>> 5910ce7..7eb0b1a 100755 ---
>> a/modules.d/98dracut-systemd/rootfs-generator.sh +++
>> b/modules.d/98dracut-systemd/rootfs-generator.sh @@ -65,6 +65,23 @@
>> generator_mount_rootfs() fi
>> }
>>
>> +generator_fsck_after_pre_mount()
>> +{
>> + local _name
>> +
>> + [ -z "$1" ] && return 0
>> +
>> + _name=$(dev_unit_name "$1")
>> + [ -d /run/systemd/generator/systemd-fsck@${_name}.service.d ] ||
>> mkdir -p /run/systemd/generator/systemd-fsck@${_name}.service.d
>> + if !
>> [ -f /run/systemd/generator/systemd-fsck@${_name}.service.d/after-pre-mount.conf
>> ]; then
>> + {
>> + echo "[Unit]"
>> + echo "After=dracut-pre-mount.service"
>> + }
>>> /run/systemd/generator/systemd-fsck@${_name}.service.d/after-pre-mount.conf
>> + fi
>> +
>> +}
>> +
>> root=$(getarg root=)
>> case "$root" in
>> block:LABEL=*|LABEL=*)
>> @@ -95,6 +112,7 @@ GENERATOR_DIR="$1"
>>
>> if [ "${root%%:*}" = "block" ]; then
>> generator_wait_for_dev "${root#block:}" "$RDRETRY"
>> + generator_fsck_after_pre_mount "${root#block:}"
>> strstr "$(cat /proc/cmdline)" 'root=' || generator_mount_rootfs
>> "${root#block:}" "$(getarg rootfstype=)" "$(getarg rootflags=)" fi
>>
>
> Hmmm.. How about systemd >=220? See the following change:
> http://cgit.freedesktop.org/systemd/systemd/commit/?id=4dda4e637e4c17a14db6cd265f36f5e8a5050367
>
> Shouldn't we also add "Before=systemd-fsck-root.service" to
> dracut-pre-mount.service?
>

Good point.. yes