From 6b807b31cb7397d3bd3a67d709855b09363ce2da Mon Sep 17 00:00:00 2001 From: Tomas M Date: Tue, 18 Sep 2012 11:04:52 -0500 Subject: [PATCH] find data retrying --- build | 11 ++++++----- initramfs/init | 2 +- livekitlib | 25 ++++++++++++++++++++++--- 3 files changed, 29 insertions(+), 9 deletions(-) diff --git a/build b/build index 9818440..9f3b8ec 100755 --- a/build +++ b/build @@ -39,15 +39,16 @@ cat bootfiles/syslinux.cfg | sed -r "s:/boot/:/$LIVEKITNAME/boot/:" > $BOOT/sysl cat bootfiles/bootinst.bat | sed -r "s:/boot/:/$LIVEKITNAME/boot/:" | sed -r "s:\\\\boot\\\\:\\\\$LIVEKITNAME\\\\boot\\\\:" > $BOOT/bootinst.bat cp /boot/vmlinuz $BOOT/ -# create compressed bundles -for i in $MKMOD; do - mksquashfs /$i $LIVEKITDATA/$LIVEKITNAME/$i.$BEXT -comp xz -b 512k -done - if [ -d sb ]; then cp sb/* $LIVEKITDATA/$LIVEKITNAME/ +else + # create compressed bundles + for i in $MKMOD; do + mksquashfs /$i $LIVEKITDATA/$LIVEKITNAME/$i.$BEXT -comp xz -b 512k + done fi + # create ISO for CD image echo "Creating ISO file for CD boot..." cd "$LIVEKITDATA" diff --git a/initramfs/init b/initramfs/init index f52bc22..0074dd7 100644 --- a/initramfs/init +++ b/initramfs/init @@ -25,7 +25,7 @@ init_zram init_union "$CHANGES" "$UNION" # find data dir with filesystem bundles -DATA="$(find_data $DATAMNT)" +DATA="$(find_data 60 $DATAMNT)" # copy to RAM if needed diff --git a/livekitlib b/livekitlib index 6f59117..53d0791 100644 --- a/livekitlib +++ b/livekitlib @@ -193,10 +193,10 @@ device_bestfs() } # Find LIVEKIT data by mounting all devices -# If found, retain mounted disk -# $1 = data directory to mount +# If found, keep mounted, else unmount +# $1 = data directory target (mount here) # -find_data() +find_data_try() { debug_log "find_data" @@ -214,6 +214,25 @@ find_data() done } +# Retry finding LIVEKIT data several times, +# until timeouted or until data is found +# $1 = timeout +# $2 = data directory target (mount here) +# +find_data() +{ + local DATA + + for timeout in $(seq 1 $1); do + DATA="$(find_data_try "$2")" + if [ "$DATA" != "" ]; then + echo "$DATA" + return + fi + sleep 1 + done +} + # Mount squashfs filesystem bundles # and add them to union # $1 = directory where to search for bundles