]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librbd: set *image_size to 0 when getting ENOENT in rbd_group_image_list() 26707/head
authorsongweibin <song.weibin@zte.com.cn>
Mon, 25 Feb 2019 06:59:25 +0000 (14:59 +0800)
committerPrashant D <pdhange@redhat.com>
Fri, 1 Mar 2019 01:07:58 +0000 (20:07 -0500)
Fixes: http://tracker.ceph.com/issues/38468
Signed-off-by: songweibin <song.weibin@zte.com.cn>
(cherry picked from commit 141e3a74b6fb10ca923c61dc90e7573f1becf002)

src/librbd/librbd.cc
src/test/pybind/test_rbd.py

index 7c07d0bde1f0a9caf887e47de3cd3ea1e7ecd4df..de4ed31c560554c965801e83ca0577bda0aae9db 100644 (file)
@@ -4711,6 +4711,7 @@ extern "C" int rbd_group_image_list(rados_ioctx_t group_p,
 
   if (r == -ENOENT) {
     tracepoint(librbd, group_image_list_exit, 0);
+    *image_size = 0;
     return 0;
   }
 
index f1223ce5f96cf19354cc75c090fceed09719e676..29935f7b74d08dba19e37f756f7fe6487c22e06b 100644 (file)
@@ -1825,6 +1825,16 @@ class TestGroups(object):
         self.group.add_image(ioctx, image_name)
         eq([image_name], [img['name'] for img in self.group.list_images()])
 
+    def test_group_image_list_move_to_trash(self):
+        eq([], list(self.group.list_images()))
+        with Image(ioctx, image_name) as image:
+            image_id = image.id()
+        self.group.add_image(ioctx, image_name)
+        eq([image_name], [img['name'] for img in self.group.list_images()])
+        RBD().trash_move(ioctx, image_name, 0)
+        eq([], list(self.group.list_images()))
+        RBD().trash_restore(ioctx, image_id, image_name)
+
     def test_group_image_many_images(self):
         eq([], list(self.group.list_images()))
         self.group.add_image(ioctx, image_name)