Chao, maybe you can resend the patch series and cc systemd mailing list
to get their opinions especially for this one.
On 07/08/14 at 10:38am, Dave Young wrote:
On 06/17/14 at 03:07pm, WANG Chao wrote:
> Currently in kdump initramfs, mount units specified in /etc/fstab are
> required by "local-fs.target". When any of these mounts fails,
> local-fs.target fails.
>
> For kdump initramfs, we need to isolate to emergency service on any of
> the mount failure, that said, every service should be stopped and onlu
> emergency service would run. But local-fs.target won't trigger that on
> its failure. That means in case of mount failure, local-fs.target also
> enters failure state, but all the service will continue without any
> interruption.
>
> After digging looking into source code of systemd-fstab-generator. I
> find "x-initrd.mount" using in initramfs mount, will make the mount
> units required by "initrd-root-fs.target" rather than it's used to be
> "local-fs.target".
>
> "initrd-root-fs.target" is suitable to us because if it fails, it will
> isolate to emergency service. That means in case of any mount failure,
> the emergeny service will start and everything else will stop. We want
> this effect because we need to take kdump fail-safe action when there's
> a mount failure.
>
> From systemd unit point of view, "initrd-root-fs.target" has
> OnFailureIsolate=yes, but "local-fs.target" doesn't. From
> systemd.unit(5):
>
> OnFailureIsolate=
> Takes a boolean argument. If true, the unit listed in OnFailure=
> will be enqueued in isolation mode, i.e. all units that are not its
> dependency will be stopped. If this is set, only a single unit may
> be listed in OnFailure=. Defaults to false.
>
> NOTE: It's quite hacky to use "x-initrd.mount" in initramfs
/etc/fstab.
> It's more common to specify it on real root /etc/fstab. Because I don't
> find any other way to do it, We can only hope that systemd will keep
> this feature.
>
> Signed-off-by: WANG Chao <chaowang(a)redhat.com>
> ---
> mkdumprd | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/mkdumprd b/mkdumprd
> index ba35800..a38d190 100644
> --- a/mkdumprd
> +++ b/mkdumprd
> @@ -106,6 +106,7 @@ to_mount() {
> _fstype=$(findmnt -k -f -n -r -o FSTYPE $_dev)
> _options=$(findmnt -k -f -n -r -o OPTIONS $_dev)
> _options=${_options/#ro/rw} #mount fs target as rw in 2nd kernel
> + _options="$_options,x-initrd.mount"
> _mntopts="$_target $_fstype $_options"
> #for non-nfs _dev converting to use udev persistent name
> if [ -b "$_source" ]; then
> --
> 1.9.3
>
> _______________________________________________
> kexec mailing list
> kexec(a)lists.fedoraproject.org
>
https://lists.fedoraproject.org/mailman/listinfo/kexec
_______________________________________________
kexec mailing list
kexec(a)lists.fedoraproject.org
https://lists.fedoraproject.org/mailman/listinfo/kexec