]> granicus.if.org Git - zfs/commit
initramfs: Honor mountpoint=none/legacy
authorRichard Laager <rlaager@wiktel.com>
Fri, 24 Nov 2017 03:54:48 +0000 (21:54 -0600)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 28 Nov 2017 17:38:00 +0000 (09:38 -0800)
commitbd2958dea02f1126c4e907ab55c385ef24431f15
tree11039a279b8c589c0d3f251009b9167e4c35d104
parent1c68856bcaad053bb21acdde4ca952b764edd664
initramfs: Honor mountpoint=none/legacy

For filesystems that are children of the rootfs, when mountpoint=none or
mountpoint=legacy, the initrafms script would assume a mountpoint based
on the dataset path.  Given that the rootfs should have mountpoint=/ and
mountpoint inheritance is is the default behavior of ZFS, this behavior
seems unnecessary.  In any event, it turns mountpoint=none into a no-op.
That removes this option from the administrator, and if someone uses it,
it does not work as expected.  Worse yet, if the mountpoint directory
does not exist (which is the typical case for mountpoint=none), the
mounting and thus the boot process will fail.  For the case of
mountpoint=legacy, the assumed mountpoint may not be the correct value
set in /etc/fstab.

This change makes the initramfs script not mount the filesystem in
either case.  For mountpoint=none, this means we are correctly honoring
the setting.  For mountpoint=legacy, there are two scenarios:  If
canmount=on, the filesystem will be mounted by the normal mechanisms
later in the boot process.  If canmount=noauto, the filesystem will not
be mounted at all, unless the administrator has done something special.
If they're not doing something special and they want it mounted by the
initramfs, they can simply not set mountpoint=legacy.

This is part of the fix for:
https://github.com/zfsonlinux/pkg-zfs/issues/221

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Signed-off-by: Richard Laager <rlaager@wiktel.com>
Closes #6897
contrib/initramfs/scripts/zfs.in