summaryrefslogtreecommitdiff
path: root/src/initrd/samizdat-eject.sh
diff options
context:
space:
mode:
authorAndrew Cady <d@jerkface.net>2016-04-30 00:28:49 -0400
committerAndrew Cady <d@jerkface.net>2016-04-30 00:28:54 -0400
commite9960a73da65a93b943e1bacf03f607a6d821680 (patch)
tree204ae18218c2b0787a7086dc529274709a1753c3 /src/initrd/samizdat-eject.sh
parentb5917e4b9b92d86b773ec4f4fd7f3a3a2d3790c1 (diff)
samizdat-eject will wait to do the last step instead of giving up
Diffstat (limited to 'src/initrd/samizdat-eject.sh')
-rwxr-xr-xsrc/initrd/samizdat-eject.sh18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/initrd/samizdat-eject.sh b/src/initrd/samizdat-eject.sh
index d95a49d..a950ec5 100755
--- a/src/initrd/samizdat-eject.sh
+++ b/src/initrd/samizdat-eject.sh
@@ -84,9 +84,19 @@ fi
84 84
85remove "$@" 85remove "$@"
86 86
87echo 'Waiting while boot medium is freed...' >&2
87wait 88wait
88 89
89if [ "$(btrfs_subdevice_count /)" = 1 ] && md_ready; then 90notified=
90 mdadm_copy_eject /dev/md55 "$target".part && 91while true; do
91 mv "$target".part "$target" 92 if [ "$(btrfs_subdevice_count /)" = 1 ] && md_ready; then
92fi 93 if [ -z "$notified" ]; then
94 echo 'Boot medium is free. It may be ejected now.' >&2
95 notified=y
96 fi
97 mdadm_copy_eject /dev/md55 "$target".part &&
98 mv "$target".part "$target"
99 exit
100 fi
101 sleep 5
102done