Delay before destroying loopback devices
authorBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 3 Jun 2011 21:13:25 +0000 (14:13 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 3 Jun 2011 21:38:25 +0000 (14:38 -0700)
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.

scripts/zpool-config/lo-raid0.sh
scripts/zpool-config/lo-raid10.sh
scripts/zpool-config/lo-raidz.sh
scripts/zpool-config/lo-raidz2.sh

index f7eb77d..f24050f 100644 (file)
@@ -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}"
index 5350930..f9fe3c0 100644 (file)
@@ -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}"
index e83e4a8..db5de7c 100644 (file)
@@ -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}"
index c6381ea..53a032e 100644 (file)
@@ -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}"