]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rbd-nbd: don't ignore namespace when unmapping by image spec 37429/head
authorMykola Golub <mgolub@suse.com>
Sun, 27 Sep 2020 16:59:49 +0000 (17:59 +0100)
committerMykola Golub <mgolub@suse.com>
Sun, 27 Sep 2020 16:59:49 +0000 (17:59 +0100)
Fixes: https://tracker.ceph.com/issues/47665
Signed-off-by: Mykola Golub <mgolub@suse.com>
qa/workunits/rbd/rbd-nbd.sh
src/tools/rbd_nbd/rbd-nbd.cc

index cd899ec132fda0709d7e682620be73b907d63176..db425bbee45820fbb015047fed8011bd68cc2acb 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 956bf0c8bae73d84d30f83861be5fd04bcd12c22..5f09fd1b39155d978737a153a935fb835d279009 100644 (file)
@@ -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;
     }