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 712731381F3 for ; Sun, 9 Jun 2013 11:43:41 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 2DE7DE07F7; Sun, 9 Jun 2013 11:43:37 +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 27E76E07F0 for ; Sun, 9 Jun 2013 11:43:36 +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 42FBE33E320 for ; Sun, 9 Jun 2013 11:43:35 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id 7AFE8E468F for ; Sun, 9 Jun 2013 11:43:33 +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: <1370778171.7bf3e57adcab2900860090efbdb83ac2b9787d8b.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: 7bf3e57adcab2900860090efbdb83ac2b9787d8b X-VCS-Branch: ryao Date: Sun, 9 Jun 2013 11:43:33 +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: 271b53d3-f5ec-4c24-b0da-bbf01edd1e04 X-Archives-Hash: e1dc5a86fecaf7c0b3b60542a8f6150a commit: 7bf3e57adcab2900860090efbdb83ac2b9787d8b Author: Richard Yao gentoo org> AuthorDate: Sun Jun 9 11:36:43 2013 +0000 Commit: Richard Yao gentoo org> CommitDate: Sun Jun 9 11:42:51 2013 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/genkernel.git;a=commit;h=7bf3e57a 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!'