summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2011-06-03 14:13:25 -0700
committerBrian Behlendorf <[email protected]>2011-06-03 14:38:25 -0700
commit608860b6d06aaaa647e03fc3f3fc1b49f025155e (patch)
tree7dc31fbe8f463eeaf8b29790b0b9976560d2662d /scripts
parent36391312afdfac5584ca40ef1af7721108ce4c20 (diff)
Delay before destroying loopback devices
Generally I don't approve of just adding an arbitrary delay to avoid a problem but in this case I'm going to let it slide. We may need to delay briefly after 'zpool destroy' returns to ensure the loopback devices are closed. If they aren't closed than losetup -d will not be able to destroy them. Unfortunately, there's no easy state the check so we'll have to make due with a simple delay.
Diffstat (limited to 'scripts')
-rw-r--r--scripts/zpool-config/lo-raid0.sh3
-rw-r--r--scripts/zpool-config/lo-raid10.sh3
-rw-r--r--scripts/zpool-config/lo-raidz.sh3
-rw-r--r--scripts/zpool-config/lo-raidz2.sh3
4 files changed, 12 insertions, 0 deletions
diff --git a/scripts/zpool-config/lo-raid0.sh b/scripts/zpool-config/lo-raid0.sh
index f7eb77d7b..f24050f46 100644
--- a/scripts/zpool-config/lo-raid0.sh
+++ b/scripts/zpool-config/lo-raid0.sh
@@ -31,6 +31,9 @@ zpool_destroy() {
msg ${ZPOOL} destroy ${ZPOOL_NAME}
${ZPOOL} destroy ${ZPOOL_NAME}
+ # Delay to ensure device is closed before removing loop device
+ sleep 1
+
for FILE in ${FILES}; do
DEVICE=`${LOSETUP} -a | grep ${FILE} | head -n1|cut -f1 -d:`
msg "Removing ${FILE} using loopback device ${DEVICE}"
diff --git a/scripts/zpool-config/lo-raid10.sh b/scripts/zpool-config/lo-raid10.sh
index 5350930bb..f9fe3c064 100644
--- a/scripts/zpool-config/lo-raid10.sh
+++ b/scripts/zpool-config/lo-raid10.sh
@@ -46,6 +46,9 @@ zpool_destroy() {
msg ${ZPOOL} destroy ${ZPOOL_NAME}
${ZPOOL} destroy ${ZPOOL_NAME}
+ # Delay to ensure device is closed before removing loop device
+ sleep 1
+
for FILE in ${FILES}; do
DEVICE=`${LOSETUP} -a | grep ${FILE} | head -n1|cut -f1 -d:`
msg "Removing ${FILE} using loopback device ${DEVICE}"
diff --git a/scripts/zpool-config/lo-raidz.sh b/scripts/zpool-config/lo-raidz.sh
index e83e4a838..db5de7c1b 100644
--- a/scripts/zpool-config/lo-raidz.sh
+++ b/scripts/zpool-config/lo-raidz.sh
@@ -31,6 +31,9 @@ zpool_destroy() {
msg ${ZPOOL} destroy ${ZPOOL_NAME}
${ZPOOL} destroy ${ZPOOL_NAME}
+ # Delay to ensure device is closed before removing loop device
+ sleep 1
+
for FILE in ${FILES}; do
DEVICE=`${LOSETUP} -a | grep ${FILE} | head -n1|cut -f1 -d:`
msg "Removing ${FILE} using loopback device ${DEVICE}"
diff --git a/scripts/zpool-config/lo-raidz2.sh b/scripts/zpool-config/lo-raidz2.sh
index c6381eaff..53a032ec5 100644
--- a/scripts/zpool-config/lo-raidz2.sh
+++ b/scripts/zpool-config/lo-raidz2.sh
@@ -31,6 +31,9 @@ zpool_destroy() {
msg ${ZPOOL} destroy ${ZPOOL_NAME}
${ZPOOL} destroy ${ZPOOL_NAME}
+ # Delay to ensure device is closed before removing loop device
+ sleep 1
+
for FILE in ${FILES}; do
DEVICE=`${LOSETUP} -a | grep ${FILE} | head -n1|cut -f1 -d:`
msg "Removing ${FILE} using loopback device ${DEVICE}"