From 538ac73d9d55808940ac241f603f73e465f6d30b Mon Sep 17 00:00:00 2001 From: Mykola Golub Date: Sun, 27 Sep 2020 17:59:49 +0100 Subject: [PATCH] rbd-nbd: don't ignore namespace when unmapping by image spec Fixes: https://tracker.ceph.com/issues/47665 Signed-off-by: Mykola Golub (cherry picked from commit b360186eb6463811ce19f21e8d24ab7c44dc7279) --- qa/workunits/rbd/rbd-nbd.sh | 12 +++++++++++- src/tools/rbd_nbd/rbd-nbd.cc | 4 ++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/qa/workunits/rbd/rbd-nbd.sh b/qa/workunits/rbd/rbd-nbd.sh index 15a04988aee0..63728e060574 100755 --- a/qa/workunits/rbd/rbd-nbd.sh +++ b/qa/workunits/rbd/rbd-nbd.sh @@ -110,7 +110,7 @@ unmap_device() for s in 0.5 1 2 4 8 16 32; do sleep ${s} rbd-nbd list-mapped | expect_false grep "^${pid}\\b" && - ! ps -p ${pid} -C rbd-nbd && + ps -C rbd-nbd | expect_false grep "^${pid}\\b" && return 0 done return 1 @@ -230,6 +230,16 @@ get_pid ${NS} unmap_device "${POOL}/${NS}/${IMAGE}@snap" ${PID} DEV= +# unmap by image name test 2 +DEV=`_sudo rbd-nbd map ${POOL}/${IMAGE}` +get_pid +pid=$PID +DEV=`_sudo rbd-nbd map ${POOL}/${NS}/${IMAGE}` +get_pid ${NS} +unmap_device ${POOL}/${NS}/${IMAGE} ${PID} +DEV= +unmap_device ${POOL}/${IMAGE} ${pid} + # auto unmap test DEV=`_sudo rbd-nbd map ${POOL}/${IMAGE}` get_pid diff --git a/src/tools/rbd_nbd/rbd-nbd.cc b/src/tools/rbd_nbd/rbd-nbd.cc index ea36ba8b3584..42dc92ad866d 100644 --- a/src/tools/rbd_nbd/rbd-nbd.cc +++ b/src/tools/rbd_nbd/rbd-nbd.cc @@ -1410,8 +1410,8 @@ static bool find_mapped_dev_by_spec(Config *cfg) { Config c; NBDListIterator it; while (it.get(&pid, &c)) { - if (c.poolname == cfg->poolname && c.imgname == cfg->imgname && - c.snapname == cfg->snapname) { + if (c.poolname == cfg->poolname && c.nsname == cfg->nsname && + c.imgname == cfg->imgname && c.snapname == cfg->snapname) { *cfg = c; return true; } -- 2.47.3