summaryrefslogtreecommitdiff
path: root/sys-fs/zfs/files/zfs-0.6.1-gentoo-openrc-dependencies.patch
diff options
context:
space:
mode:
Diffstat (limited to 'sys-fs/zfs/files/zfs-0.6.1-gentoo-openrc-dependencies.patch')
-rw-r--r--sys-fs/zfs/files/zfs-0.6.1-gentoo-openrc-dependencies.patch57
1 files changed, 57 insertions, 0 deletions
diff --git a/sys-fs/zfs/files/zfs-0.6.1-gentoo-openrc-dependencies.patch b/sys-fs/zfs/files/zfs-0.6.1-gentoo-openrc-dependencies.patch
new file mode 100644
index 000000000000..e794b183eb33
--- /dev/null
+++ b/sys-fs/zfs/files/zfs-0.6.1-gentoo-openrc-dependencies.patch
@@ -0,0 +1,57 @@
+commit 75c2fb953c99bba008f1ef72ee71136002749f51
+Author: Richard Yao <ryao@cs.stonybrook.edu>
+Date: Tue May 28 20:08:15 2013 -0400
+
+ Improve OpenRC init script
+
+ The current zfs OpenRC script's dependencies cause OpenRC to attempt to
+ unmount ZFS filesystems at shutdown while things were still using them,
+ which would fail. This is a cosmetic issue, but it should still be
+ addressed. It probably does not affect systems where the rootfs is a
+ legacy filesystem, but any system with the rootfs on ZFS needs to run
+ the ZFS init script after the system is ready to shutdown filesystems.
+
+ OpenRC's shutdown process occurs in the reverse order of the startup
+ process. Therefore running the ZFS shutdown procedure after filesystems
+ are ready to be unmounted requires running the startup procedure before
+ fstab. This patch changes the dependencies of the script to expliclty
+ run before fstab at boot when the rootfs is ZFS and to run after fstab
+ at boot whenever the rootfs is not ZFS. This should cover most use
+ cases.
+
+ The only cases not covered well by this are systems with legacy
+ root filesystems where people want to configure fstab to mount a non-ZFS
+ filesystem off a zvol and possibly also systems whose pools are stored
+ on network block devices. The former requires that the ZFS script run
+ before fstab, which could cause ZFS datasets to mount too early and
+ appear under the fstab mount points. The latter requires that the ZFS
+ script run after networking starts, which precludes the ability to store
+ any system information on ZFS. An additional OpenRC script could be
+ written to handle non-root pools on network block devices, but that will
+ depend on user demand and developer time.
+
+ Signed-off-by: Richard Yao <ryao@cs.stonybrook.edu>
+
+diff --git a/etc/init.d/zfs.gentoo.in b/etc/init.d/zfs.gentoo.in
+index 5b8671e..0034e02 100644
+--- a/etc/init.d/zfs.gentoo.in
++++ b/etc/init.d/zfs.gentoo.in
+@@ -10,9 +10,16 @@ fi
+
+ depend()
+ {
++ # Try to allow people to mix and match fstab with ZFS in a way that makes sense.
++ if [ "$(mountinfo -s /)" = 'zfs' ]
++ then
++ before localmount
++ else
++ after localmount
++ fi
++
+ # bootmisc will log to /var which may be a different zfs than root.
+- before net bootmisc
+- after udev localmount
++ before bootmisc logger
+ keyword -lxc -openvz -prefix -vserver
+ }
+