]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rbd-nbd: don't ignore namespace when unmapping by image spec 37812/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:28:28 +0000 (21:28 +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 bcab06be9f846e93dd9ec255cad407df8ee5f8fe..fb1510851e5c28f299dc5693e2beca92824241c2 100755 (executable)
@@ -107,7 +107,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
@@ -227,6 +227,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 77d8e82e29979ec64d76708641105fa90c9d4483..a2a911f40a1d1524a8c92dd5367848df93f5b43c 100644 (file)
@@ -1408,8 +1408,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;
     }