public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Thomas Deutschmann" <whissi@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/genkernel:master commit in: /, defaults/
Date: Thu, 23 Jul 2020 23:57:35 +0000 (UTC)	[thread overview]
Message-ID: <1595545008.73689f82a7ef090c4d8c22eced7a56471be14156.whissi@gentoo> (raw)

commit:     73689f82a7ef090c4d8c22eced7a56471be14156
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 23 21:06:51 2020 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Thu Jul 23 22:56:48 2020 +0000
URL:        https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=73689f82

ZFS: Enable UDEV support

Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>

 defaults/initrd.scripts | 24 +++++++++++++++++-------
 gen_initramfs.sh        | 23 ++++++++++++++++++++++-
 2 files changed, 39 insertions(+), 8 deletions(-)

diff --git a/defaults/initrd.scripts b/defaults/initrd.scripts
index d2db059..304d634 100644
--- a/defaults/initrd.scripts
+++ b/defaults/initrd.scripts
@@ -1641,12 +1641,11 @@ start_volumes() {
 
 			local zfs_cmd="run /sbin/zpool import -N -a ${ZPOOL_CACHE} ${ZPOOL_FORCE} 2>&1"
 			is_log_enabled && zfs_cmd="${zfs_cmd} | tee -a '${GK_INIT_LOG}'"
+
 			eval "${zfs_cmd}"
-			if [ $? -eq 0 ]
+			if [ $? -ne 0 ]
 			then
-				good_msg "Importing ZFS pools succeeded!"
-			else
-				bad_msg "Imported ZFS pools failed!"
+				bad_msg "Importing ZFS pools failed!"
 			fi
 		else
 
@@ -1660,22 +1659,33 @@ start_volumes() {
 
 					local zfs_cmd="run /sbin/zpool export -f '${ZFS_POOL}' 2>&1"
 					is_log_enabled && zfs_cmd="${zfs_cmd} | tee -a '${GK_INIT_LOG}'"
+
 					eval "${zfs_cmd}"
+					if [ $? -ne 0 ]
+					then
+						bad_msg "Exporting ZFS pools failed!"
+					else
+						udevsettle
+					fi
 
 					zfs_cmd="run /sbin/zpool import -N ${ZPOOL_CACHE} ${ZPOOL_FORCE} '${ZFS_POOL}' 2>&1"
 					is_log_enabled && zfs_cmd="${zfs_cmd} | tee -a '${GK_INIT_LOG}'"
+
 					eval "${zfs_cmd}"
+					if [ $? -ne 0 ]
+					then
+						bad_msg "Re-importing ZFS pools failed!"
+					fi
 				fi
 			else
 				good_msg "Importing ZFS pool ${ZFS_POOL} ..."
 
 				local zfs_cmd="run /sbin/zpool import -N ${ZPOOL_CACHE} ${ZPOOL_FORCE} '${ZFS_POOL}' 2>&1"
 				is_log_enabled && zfs_cmd="${zfs_cmd} | tee -a '${GK_INIT_LOG}'"
+
 				eval "${zfs_cmd}"
-				if [ $? -eq 0 ]
+				if [ $? -ne 0 ]
 				then
-					good_msg "Import of ${ZFS_POOL} succeeded!"
-				else
 					bad_msg "Import of ${ZFS_POOL} failed!"
 				fi
 			fi

diff --git a/gen_initramfs.sh b/gen_initramfs.sh
index 24b23bb..570100e 100755
--- a/gen_initramfs.sh
+++ b/gen_initramfs.sh
@@ -992,7 +992,6 @@ append_zfs() {
 	fi
 
 	mkdir "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
-	cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
 
 	mkdir -p "${TDIR}"/etc/zfs || gen_die "Failed to create '${TDIR}/etc/zfs'!"
 
@@ -1022,6 +1021,28 @@ append_zfs() {
 
 	copy_binaries "${TDIR}" /sbin/{mount.zfs,zdb,zfs,zpool}
 
+	local udevdir=$(get_udevdir)
+	local udevdir_initramfs="/usr/lib/udev"
+	local udev_files=( $(qlist -e sys-fs/zfs:0 \
+		| xargs --no-run-if-empty realpath \
+		| grep -E -- "^${udevdir}")
+	)
+
+	if [ ${#udev_files[@]} -eq 0 ]
+	then
+		gen_die "Something went wrong: Did not found any udev-related files for sys-fs/zfs!"
+	fi
+
+	mkdir -p "${TDIR}"/usr/lib/udev/rules.d || gen_die "Failed to create '${TDIR}/usr/lib/udev/rules.d'!"
+
+	local udev_files
+	for udev_file in "${udev_files[@]}"
+	do
+		local dest_file="${TDIR%/}${udev_file/${udevdir}/${udevdir_initramfs}}"
+		cp -aL "${udev_file}" "${dest_file}" \
+			|| gen_die "Failed to copy '${udev_file}' to '${dest_file}'"
+	done
+
 	cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
 	log_future_cpio_content
 	find . -print0 | "${CPIO_COMMAND}" ${CPIO_ARGS} --append -F "${CPIO_ARCHIVE}" \


             reply	other threads:[~2020-07-23 23:57 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-23 23:57 Thomas Deutschmann [this message]
  -- strict thread matches above, loose matches on Subject: below --
2019-11-26 13:50 [gentoo-commits] proj/genkernel:master commit in: /, defaults/ Thomas Deutschmann
2019-07-21 16:26 Thomas Deutschmann
2017-09-04  5:36 Robin H. Johnson
2017-01-08  1:57 Robin H. Johnson
2017-01-07 23:50 Robin H. Johnson
2017-01-02 23:25 Robin H. Johnson
2016-05-16  6:55 Robin H. Johnson
2016-01-05 19:39 Robin H. Johnson
2016-01-05 19:39 Robin H. Johnson
2013-06-06  3:36 [gentoo-commits] proj/genkernel:ryao " Richard Yao
2013-06-03 23:49 ` [gentoo-commits] proj/genkernel:master " Richard Yao
2013-04-25  6:22 Fabio Erculiani
2012-10-16  0:03 Robin H. Johnson
2012-10-03 16:24 Sebastian Pipping
2012-08-30 16:20 Fabio Erculiani
2012-08-12 19:04 Sebastian Pipping
2012-07-24 18:01 Robin H. Johnson
2012-07-24 17:29 Robin H. Johnson
2012-07-24  8:29 Robin H. Johnson
2012-07-19 20:12 Richard Yao
2012-07-09 17:51 Sebastian Pipping
2012-07-08 17:05 Sebastian Pipping
2012-05-17 18:34 Sebastian Pipping
2012-03-17  1:27 Sebastian Pipping
2012-03-17  1:27 Sebastian Pipping
2012-03-17  1:27 Sebastian Pipping
2012-03-17  1:27 Sebastian Pipping
2012-02-20  6:58 Robin H. Johnson
2012-02-09  7:42 Robin H. Johnson
2012-02-06  9:35 Robin H. Johnson
2012-02-06  8:19 Robin H. Johnson
2012-01-14 23:22 Sebastian Pipping
2012-01-13 23:19 Sebastian Pipping
2012-01-13 23:19 Sebastian Pipping
2012-01-06  6:37 Robin H. Johnson
2011-11-08 17:21 Sebastian Pipping
2011-10-08 21:22 Fabio Erculiani
2011-09-13  9:54 Fabio Erculiani
2011-09-11  7:40 Fabio Erculiani
2011-08-30 15:34 Sebastian Pipping
2011-07-27 17:38 Sebastian Pipping
2011-05-31 10:58 Sebastian Pipping

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1595545008.73689f82a7ef090c4d8c22eced7a56471be14156.whissi@gentoo \
    --to=whissi@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox