From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 6D9591381F3 for ; Sun, 9 Jun 2013 11:47:55 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 01A73E07F0; Sun, 9 Jun 2013 11:47:55 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 9074EE07F0 for ; Sun, 9 Jun 2013 11:47:54 +0000 (UTC) Received: from hornbill.gentoo.org (hornbill.gentoo.org [94.100.119.163]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id AD02433E328 for ; Sun, 9 Jun 2013 11:47:53 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id 58B89E468F for ; Sun, 9 Jun 2013 11:47:52 +0000 (UTC) From: "Richard Yao" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Richard Yao" Message-ID: <1370778426.c46d88810aefa5e982cdfe01237f64a7e6a63b5a.ryao@gentoo> Subject: [gentoo-commits] proj/genkernel:ryao commit in: defaults/ X-VCS-Repository: proj/genkernel X-VCS-Files: defaults/initrd.scripts defaults/linuxrc X-VCS-Directories: defaults/ X-VCS-Committer: ryao X-VCS-Committer-Name: Richard Yao X-VCS-Revision: c46d88810aefa5e982cdfe01237f64a7e6a63b5a X-VCS-Branch: ryao Date: Sun, 9 Jun 2013 11:47:52 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 88002dbf-ca35-4772-9c18-19d101ee1bb3 X-Archives-Hash: 400c6de1418e12e66d5cf40f1f7820c9 commit: c46d88810aefa5e982cdfe01237f64a7e6a63b5a Author: Richard Yao gentoo org> AuthorDate: Sun Jun 9 11:36:43 2013 +0000 Commit: Richard Yao gentoo org> CommitDate: Sun Jun 9 11:47:06 2013 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/genkernel.git;a=commit;h=c46d8881 Workaround busybox modprobe's inability to load ZFS modules Commit 3a054014e880e5b1ff28e3d87767c45a073da6b5 replaced our modprobe with busybox's modprobe. Unfortunately, busybox's modprobe appears to be unable to properly load modules with more than 1 level of dependencies. The zfs and zpool commands will call invoke modprobe if /dev/zvol is missing, which concealed this problem. However, this caused problems because some invocations would fail and under certain circumstances, init would be killed, causing a kernel panic. We prevent this by explicitly calling modprobe on each of the dependencies before attempting to import the pool. Signed-off-by: Richard Yao gentoo.org> --- defaults/initrd.scripts | 6 ++++++ defaults/linuxrc | 5 +---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/defaults/initrd.scripts b/defaults/initrd.scripts index f598402..4d1cc90 100644 --- a/defaults/initrd.scripts +++ b/defaults/initrd.scripts @@ -721,6 +721,12 @@ startVolumes() { if [ "${USE_ZFS}" = '1' ] then + # Load modules + for i in zlib_deflate spl zavl znvpair zcommon zunicode zfs + do + modprobe ${i} + done + # Avoid race involving asynchronous module loading if call_func_timeout waitForZFS 5 then diff --git a/defaults/linuxrc b/defaults/linuxrc index 9ea305b..f54f7d5 100644 --- a/defaults/linuxrc +++ b/defaults/linuxrc @@ -298,12 +298,9 @@ esac # Verify that it is safe to use ZFS if [ "USE_ZFS" = "1" ] then - if [ -x /sbin/zfs -a -x /sbin/zpool ] + if [ ! -x /sbin/zfs -o ! -x /sbin/zpool ] then - MY_HWOPTS="${MY_HWOPTS} zfs" - else USE_ZFS=0 - [ -x /sbin/zfs ] || bad_msg '/sbin/zfs not found!' [ -x /sbin/zpool ] || bad_msg '/sbin/zpool not found!' bad_msg 'Aborting use of zfs!'