[arch-projects] [mkinitcpio][PATCH] Fix btrfs module deps for linux 3.14
This patch adds in some extra hackery to make sure that users with btrfs root filesystems don't end up with unusable initrds due to the following change made upstream [1]. TL;DR: The btrfs module has dropped it's libcrc32c dependency, so mkinitcpio no longer pulls in the crc32c module necessary for the btrfs module to be inserted. The crc32c module was only pulled in previously due to mkinitcpio hackery [2], so extra hackery now seems like the logical path. This problem can be experienced by using linux-mainline on an Arch machine with a btrfs root filesystem. Besides from this extra hackery, an alternative workaround would be for users in this situation to add crc32c to their MODULES aray in their mkintcpio.conf. Of course, this needs to be done ahead of the linux-3.14 upgrade for them to avoid the problem (assuming none of their other modules depend on libcrc32c). [1] http://www.mail-archive.com/linux-btrfs@vger.kernel.org/msg30912.html [2] https://projects.archlinux.org/mkinitcpio.git/tree/functions?id=v16#n398 --- functions | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/functions b/functions index 33bd28d..fc9e96b 100644 --- a/functions +++ b/functions @@ -406,6 +406,10 @@ add_module() { add_module "crc32c_intel?" add_module "crc32c?" ;; + btrfs) + add_module "crc32c_intel?" + add_module "crc32c?" + ;; esac } -- 1.9.0
On Mon, Mar 03, 2014 at 01:17:29AM +0000, WorMzy Tykashi wrote:
This patch adds in some extra hackery to make sure that users with btrfs root filesystems don't end up with unusable initrds due to the following change made upstream [1]. TL;DR: The btrfs module has dropped it's libcrc32c dependency, so mkinitcpio no longer pulls in the crc32c module necessary for the btrfs module to be inserted. The crc32c module was only pulled in previously due to mkinitcpio hackery [2], so extra hackery now seems like the logical path.
This problem can be experienced by using linux-mainline on an Arch machine with a btrfs root filesystem. Besides from this extra hackery, an alternative workaround would be for users in this situation to add crc32c to their MODULES aray in their mkintcpio.conf. Of course, this needs to be done ahead of the linux-3.14 upgrade for them to avoid the problem (assuming none of their other modules depend on libcrc32c).
[1] http://www.mail-archive.com/linux-btrfs@vger.kernel.org/msg30912.html [2] https://projects.archlinux.org/mkinitcpio.git/tree/functions?id=v16#n398
well, ew.
--- functions | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/functions b/functions index 33bd28d..fc9e96b 100644 --- a/functions +++ b/functions @@ -406,6 +406,10 @@ add_module() { add_module "crc32c_intel?" add_module "crc32c?" ;; + btrfs) + add_module "crc32c_intel?" + add_module "crc32c?" + ;;
wouldn't it be easier to just add this to the above case?
esac }
-- 1.9.0
On 3 March 2014 02:01, Dave Reisner <d@falconindy.com> wrote:
On Mon, Mar 03, 2014 at 01:17:29AM +0000, WorMzy Tykashi wrote:
This patch adds in some extra hackery to make sure that users with btrfs root filesystems don't end up with unusable initrds due to the following change made upstream [1]. TL;DR: The btrfs module has dropped it's libcrc32c dependency, so mkinitcpio no longer pulls in the crc32c module necessary for the btrfs module to be inserted. The crc32c module was only pulled in previously due to mkinitcpio hackery [2], so extra hackery now seems like the logical path.
This problem can be experienced by using linux-mainline on an Arch machine with a btrfs root filesystem. Besides from this extra hackery, an alternative workaround would be for users in this situation to add crc32c to their MODULES aray in their mkintcpio.conf. Of course, this needs to be done ahead of the linux-3.14 upgrade for them to avoid the problem (assuming none of their other modules depend on libcrc32c).
[1] http://www.mail-archive.com/linux-btrfs@vger.kernel.org/msg30912.html [2] https://projects.archlinux.org/mkinitcpio.git/tree/functions?id=v16#n398
well, ew.
Agreed. Invisible module dependencies are not fun.
--- functions | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/functions b/functions index 33bd28d..fc9e96b 100644 --- a/functions +++ b/functions @@ -406,6 +406,10 @@ add_module() { add_module "crc32c_intel?" add_module "crc32c?" ;; + btrfs) + add_module "crc32c_intel?" + add_module "crc32c?" + ;;
wouldn't it be easier to just add this to the above case?
Ah, yeah, that'd be much better. I'll send a v2 patch in a moment.
esac }
-- 1.9.0
Cheers, WorMzy
participants (2)
-
Dave Reisner
-
WorMzy Tykashi