]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rbd-nbd: don't ignore namespace when unmapping by image spec 37811/head
authorMykola Golub <mgolub@suse.com>
Sun, 27 Sep 2020 16:59:49 +0000 (17:59 +0100)
committerNathan Cutler <ncutler@suse.com>
Mon, 26 Oct 2020 20:22:48 +0000 (21:22 +0100)
Fixes: https://tracker.ceph.com/issues/47665
Signed-off-by: Mykola Golub <mgolub@suse.com>
(cherry picked from commit b360186eb6463811ce19f21e8d24ab7c44dc7279)

qa/workunits/rbd/rbd-nbd.sh
src/tools/rbd_nbd/rbd-nbd.cc

index 15a04988aee07d832d95eabfaba9f507588a0fa4..63728e0605740bb2c797dbeb9fa0023c7bcbcf47 100755 (executable)
@@ -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
index ea36ba8b3584874d2c0707a59b9c0cc3188065d3..42dc92ad866d3b8051e3f89108374e45cf4ba866 100644 (file)
@@ -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;
     }