HomeFreeBSD

initramfs: use `mount.zfs` instead of `mount`

Description

initramfs: use mount.zfs instead of mount

A followup to d7a67402a85252e163aa8a9b69e7eda499db8c61

For mount -t zfs -o opts ds mp command line
some implementations of mount(8), e. g. Busybox in Debian
work as follows:

newfstatat(AT_FDCWD, "ds", 0x7fff826f4ab0, 0) = -1
mount("ds", "mp", "zfs", MS_SILENT, NULL) = 0

The logic above skips completely mount.zfs and prevents us
from reading filesystem properties and applying mount options.

For comparison, the coreutils mount(8) implementation does:

openat(AT_FDCWD, "/proc/filesystems", O_RDONLY|O_CLOEXEC) = 3
// figure out that zfs is a `nodev` filesystem and look for a helper
newfstatat(AT_FDCWD, "/sbin/mount.zfs" ...) = 0
execve("/sbin/mount.zfs" ...) = 0

Using mount.zfs in initramfs would help circumvent deficiencies
of some of mount(8) implementations. mount -t zfs translates
to mount.zfs invocation, except for cases when explicitly disabled
by -i.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: szubersk <szuberskidamian@gmail.com>
Closes #13305
(cherry picked from commit 35d81a75a8c13e011e19fd12cf553d9c5849386e)

Details

Provenance
Damian Szuberski <szuberskidamian@gmail.com>Authored on Apr 11 2022, 10:51 PM
Brian Behlendorf <behlendorf1@llnl.gov>Committed on Oct 6 2022, 12:01 AM
Parents
rG6a6bd493988c: Tag zfs-2.1.6
Branches
Unknown
Tags
Unknown

Event Timeline

Brian Behlendorf <behlendorf1@llnl.gov> committed rG4d22befde600: initramfs: use `mount.zfs` instead of `mount` (authored by Damian Szuberski <szuberskidamian@gmail.com>).Oct 6 2022, 12:01 AM