From b360186eb6463811ce19f21e8d24ab7c44dc7279 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 --- 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 cd899ec132f..db425bbee45 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 956bf0c8bae..5f09fd1b391 100644 --- a/src/tools/rbd_nbd/rbd-nbd.cc +++ b/src/tools/rbd_nbd/rbd-nbd.cc @@ -1602,8 +1602,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.39.5