summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2013-08-13 10:11:39 -0700
committerSage Weil <sage@inktank.com>2013-08-13 10:11:39 -0700
commite9d4f9b048d4fcb3a8aa427dbfafdb864f6d7372 (patch)
tree075d0b22f3c18daac6d8f3eed4fe5342b6f4f40a
parent977b7f583801db4b5eee1a8b4b442db8f74a425c (diff)
parent6df75da3d1bf8b11c5760a2d5a0b11b429e25b3f (diff)
downloadceph-e9d4f9b048d4fcb3a8aa427dbfafdb864f6d7372.tar.gz
Merge pull request #497 from ksperis/rbdmap.init-3
Rbdmap.init 3 Reviewed-by: Sage Weil <sage@inktank.com>
-rwxr-xr-xsrc/init-rbdmap20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/init-rbdmap b/src/init-rbdmap
index 6ea4af7624b..54554ae40d7 100755
--- a/src/init-rbdmap
+++ b/src/init-rbdmap
@@ -62,17 +62,19 @@ do_map() {
do_unmap() {
log_daemon_msg "Stopping $DESC"
RET=0
+ # Recursive umount that depends /dev/rbd*
+ MNTDEP=$(findmnt --mtab | awk '$2 ~ /^\/dev\/rbd[0-9]*$/ {print $1}' | sort -r)
+ for MNT in $MNTDEP; do
+ umount $MNT
+ done
# Unmap all rbd device
- for DEV in /dev/rbd[0-9]*; do
- log_progress_msg $DEV
- # Umount before unmap
- MNTDEP=$(findmnt --mtab --source $DEV --output TARGET | sed 1,1d | sort -r)
- for MNT in $MNTDEP; do
- umount $MNT || sleep 1 && umount -l $DEV
+ if [ -b /dev/rbd[0-9]* ]; then
+ for DEV in /dev/rbd[0-9]*; do
+ log_progress_msg $DEV
+ rbd unmap $DEV
+ [ $? -ne "0" ] && RET=1
done
- rbd unmap $DEV
- [ $? -ne "0" ] && RET=1
- done
+ fi
log_end_msg $RET
}