aboutsummaryrefslogtreecommitdiffstats
path: root/main/mkinitfs/0002-fix-booting-from-btrfs-raid.patch
blob: 849f8083b6f4f356691901938f56827d269d94c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
From 873bda089bd05adbe74ad17cae063ee4bcbe25de Mon Sep 17 00:00:00 2001
From: Jakub Jirutka <jakub@jirutka.cz>
Date: Fri, 22 Sep 2017 00:41:47 +0200
Subject: [PATCH] fix booting from btrfs on multiple devices

https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices:
> btrfs device scan is used to scan all of the block devices under /dev
> and probe for Btrfs volumes. This is required after loading the btrfs
> module if you're running with more than one device in a filesystem.

See http://bugs.alpinelinux.org/issues/6903
---
 Makefile | 1 +
 features.d/btrfs.files | 1 +
 initramfs-init.in      | 4 ++++
 3 files changed, 6 insertions(+)
 create mode 100644 features.d/btrfs.files

diff --git a/Makefile b/Makefile
index 01a678b..6545557 100644
--- a/Makefile
+++ b/Makefile
@@ -12,6 +12,7 @@ CONF_FILES	:= mkinitfs.conf \
 		features.d/base.files \
 		features.d/base.modules \
 		features.d/bootchart.files \
+		features.d/btrfs.files \
 		features.d/btrfs.modules \
 		features.d/cdrom.modules \
 		features.d/cramfs.modules \
diff --git a/features.d/btrfs.files b/features.d/btrfs.files
new file mode 100644
index 0000000..3729b89
--- /dev/null
+++ b/features.d/btrfs.files
@@ -0,0 +1 @@
+/sbin/btrfs
diff --git a/initramfs-init.in b/initramfs-init.in
index be7b1c3..f3a3ee5 100755
--- a/initramfs-init.in
+++ b/initramfs-init.in
@@ -388,6 +388,10 @@ if [ -n "$KOPT_root" ]; then
 	nlplug-findfs $cryptopts -p /sbin/mdev ${KOPT_debug_init:+-d} \
 		$KOPT_root
 
+	if echo "$KOPT_modules $KOPT_rootfstype" | grep -qw btrfs; then
+		/sbin/btrfs device scan || echo "Failed to scan devices for btrfs filesystem."
+	fi
+
 	if [ -n "$KOPT_resume" ]; then
 		echo "Resume from disk"
 		if [ -e /sys/power/resume ]; then
-- 
2.10.1 (Apple Git-78)