public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH zfsonlinux] fix #4440: cherry-pick patch for mountpoint=legacy on /
@ 2023-01-02 14:25 Stoiko Ivanov
  2023-01-02 16:12 ` [pve-devel] applied: " Thomas Lamprecht
  0 siblings, 1 reply; 2+ messages in thread
From: Stoiko Ivanov @ 2023-01-02 14:25 UTC (permalink / raw)
  To: pve-devel

As reported having set 'mountpoint=legacy' on the root dataset (for a
default install this would be 'rpool/ROOT/pve-1') for mounting through
e.g. /etc/fstab breaks booting in initramfs

The cherry-picked patch is already applied to zfs-2.1.8-staging
upstream so will be included in the next zfs point release.

reproduced the issue on a VM with ZFS on root by:
* booting into a PVE 7.3 iso (to have zfs and an inactive
  rpool/ROOT/pve-1)
* `zpool import -ocachefile=none -N -f rpool
* `zfs set mountpoint=legacy rpool/ROOT/pve-1`
* `mount -t zfs rpool/ROOT/pve-1 /mnt
* `echo "rpool/ROOT/pve-1 / zfs defaults 0 0" >> /mnt/etc/fstab`
* `zpool export rpool`
* reboot - the boot breaks with zfs-initramfs 2.1.7-pve1 but works
  with this patch applied

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---

The current changes on zfs-2.1.8-staging could all be applied without too
much expected fallout (dracut fixes, aarch64 fixes, tests and testconfig)
If preferred I can send an update of the zfsmodule to the current tip of this
branch instead

 ...itramfs-Fix-legacy-mountpoint-rootfs.patch | 58 +++++++++++++++++++
 debian/patches/series                         |  1 +
 2 files changed, 59 insertions(+)
 create mode 100644 debian/patches/0012-initramfs-Fix-legacy-mountpoint-rootfs.patch

diff --git a/debian/patches/0012-initramfs-Fix-legacy-mountpoint-rootfs.patch b/debian/patches/0012-initramfs-Fix-legacy-mountpoint-rootfs.patch
new file mode 100644
index 00000000..e26941d2
--- /dev/null
+++ b/debian/patches/0012-initramfs-Fix-legacy-mountpoint-rootfs.patch
@@ -0,0 +1,58 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Ryan Moeller <ryan@iXsystems.com>
+Date: Mon, 12 Dec 2022 13:23:06 -0500
+Subject: [PATCH] initramfs: Fix legacy mountpoint rootfs
+
+Legacy mountpoint datasets should not pass `-o zfsutil` to `mount.zfs`.
+Fix the logic in `mount_fs()` to not forget we have a legacy mountpoint
+when checking for an `org.zol:mountpoint` userprop.
+
+Reviewed-by: Richard Yao <ryao@gentoo.org>
+Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
+Signed-off-by: Ryan Moeller <ryan@iXsystems.com>
+Closes #14274
+(cherry picked from commit 786ff6a6cb33226b4f4292c7569b9093286f74d9)
+(cherry picked from commit f28c7302cb77a8cb6112690d0eed0bf4adeeae15)
+Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
+---
+ contrib/initramfs/scripts/zfs | 20 ++++++++------------
+ 1 file changed, 8 insertions(+), 12 deletions(-)
+
+diff --git a/contrib/initramfs/scripts/zfs b/contrib/initramfs/scripts/zfs
+index 9169adf5f..c7548fa07 100644
+--- a/contrib/initramfs/scripts/zfs
++++ b/contrib/initramfs/scripts/zfs
+@@ -331,25 +331,21 @@ mount_fs()
+ 		# Can't use the mountpoint property. Might be one of our
+ 		# clones. Check the 'org.zol:mountpoint' property set in
+ 		# clone_snap() if that's usable.
+-		mountpoint=$(get_fs_value "$fs" org.zol:mountpoint)
+-		if [ "$mountpoint" = "legacy" ] ||
+-		   [ "$mountpoint" = "none" ] ||
+-		   [ "$mountpoint" = "-" ]
++		mountpoint1=$(get_fs_value "$fs" org.zol:mountpoint)
++		if [ "$mountpoint1" = "legacy" ] ||
++		   [ "$mountpoint1" = "none" ] ||
++		   [ "$mountpoint1" = "-" ]
+ 		then
+ 			if [ "$fs" != "${ZFS_BOOTFS}" ]; then
+ 				# We don't have a proper mountpoint and this
+ 				# isn't the root fs.
+ 				return 0
+-			else
+-				# Last hail-mary: Hope 'rootmnt' is set!
+-				mountpoint=""
+ 			fi
+-		fi
+-
+-		# If it's not a legacy filesystem, it can only be a
+-		# native one...
+-		if [ "$mountpoint" = "legacy" ]; then
+ 			ZFS_CMD="mount.zfs"
++			# Last hail-mary: Hope 'rootmnt' is set!
++			mountpoint=""
++		else
++			mountpoint="$mountpoint1"
+ 		fi
+ 	fi
+ 
diff --git a/debian/patches/series b/debian/patches/series
index d2770d39..50ec4e77 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -9,3 +9,4 @@
 0009-Patch-move-manpage-arcstat-1-to-arcstat-8.patch
 0010-arcstat-Fix-integer-division-with-python3.patch
 0011-arc-stat-summary-guard-access-to-l2arc-MFU-MRU-stats.patch
+0012-initramfs-Fix-legacy-mountpoint-rootfs.patch
-- 
2.30.2





^ permalink raw reply	[flat|nested] 2+ messages in thread

* [pve-devel] applied: [PATCH zfsonlinux] fix #4440: cherry-pick patch for mountpoint=legacy on /
  2023-01-02 14:25 [pve-devel] [PATCH zfsonlinux] fix #4440: cherry-pick patch for mountpoint=legacy on / Stoiko Ivanov
@ 2023-01-02 16:12 ` Thomas Lamprecht
  0 siblings, 0 replies; 2+ messages in thread
From: Thomas Lamprecht @ 2023-01-02 16:12 UTC (permalink / raw)
  To: Proxmox VE development discussion, Stoiko Ivanov

Am 02/01/2023 um 15:25 schrieb Stoiko Ivanov:
> As reported having set 'mountpoint=legacy' on the root dataset (for a
> default install this would be 'rpool/ROOT/pve-1') for mounting through
> e.g. /etc/fstab breaks booting in initramfs
> 
> The cherry-picked patch is already applied to zfs-2.1.8-staging
> upstream so will be included in the next zfs point release.
> 
> reproduced the issue on a VM with ZFS on root by:
> * booting into a PVE 7.3 iso (to have zfs and an inactive
>   rpool/ROOT/pve-1)
> * `zpool import -ocachefile=none -N -f rpool
> * `zfs set mountpoint=legacy rpool/ROOT/pve-1`
> * `mount -t zfs rpool/ROOT/pve-1 /mnt
> * `echo "rpool/ROOT/pve-1 / zfs defaults 0 0" >> /mnt/etc/fstab`
> * `zpool export rpool`
> * reboot - the boot breaks with zfs-initramfs 2.1.7-pve1 but works
>   with this patch applied
> 
> Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
> ---
> 
> The current changes on zfs-2.1.8-staging could all be applied without too
> much expected fallout (dracut fixes, aarch64 fixes, tests and testconfig)
> If preferred I can send an update of the zfsmodule to the current tip of this
> branch instead
> 

no, works fine as is. I prefer pulling targeted fixes, at least if coming from
a (unreleased) staging branch/version like here.

>  ...itramfs-Fix-legacy-mountpoint-rootfs.patch | 58 +++++++++++++++++++
>  debian/patches/series                         |  1 +
>  2 files changed, 59 insertions(+)
>  create mode 100644 debian/patches/0012-initramfs-Fix-legacy-mountpoint-rootfs.patch
> 
>

applied, thanks!




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-01-02 16:13 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-02 14:25 [pve-devel] [PATCH zfsonlinux] fix #4440: cherry-pick patch for mountpoint=legacy on / Stoiko Ivanov
2023-01-02 16:12 ` [pve-devel] applied: " Thomas Lamprecht

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal