From d9b6e4ec173e167bd89576cfca12b5f7c2dfb620 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Fri, 27 Mar 2009 15:25:32 +0000
Subject: [PATCH] initram: wait for usbdisk to settle

---
 initramfs-init | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/initramfs-init b/initramfs-init
index da7a46489720..6e2c998e1dbf 100755
--- a/initramfs-init
+++ b/initramfs-init
@@ -198,6 +198,13 @@ eend 0
 mount -t tmpfs tmpfs $NEWROOT
 
 # look for apkovl
+if dmesg | grep '^usb-storage: waiting' >/dev/null; then
+	ebegin "Waiting for USB device to settle"
+	while ! dmesg | grep 'usb-storage: device scan complete' >/dev/null; do
+		sleep 1
+	done
+	eend 0
+fi
 for i in usb floppy cdrom; do
 	mount /media/$i 2>/dev/null || continue
 	ovl=$(find_ovl /media/$i)
@@ -212,7 +219,7 @@ if [ -f "$ovl" ]; then
 	ebegin "Loading user settings from $ovl"
 	tar -C $NEWROOT -zxf "$ovl"
 	eend $?
-	umount /media/$i 2>/dev/null
+	umount /media/$i 2>/dev/null &
 	pkgs=$(sed 's/\#.*//' $NEWROOT/etc/lbu/packages.list 2>/dev/null)
 fi
 
@@ -255,9 +262,9 @@ cat /proc/mounts | while read DEV DIR TYPE OPTS ; do
 		mount -o move $DIR $NEWROOT/$DIR
 	fi
 done
+ln -sf /.modloop/modules $NEWROOT/lib/modules
 sync
 
-ln -sf /.modloop/modules $NEWROOT/lib/modules
 echo ""
 if [ -x $NEWROOT/sbin/init ]; then
 	exec /bin/busybox switch_root $NEWROOT $chart_init /sbin/init $KOPT_init_args
-- 
GitLab