]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librbd: assert on parent in ImageCtx destructor
authorIlya Dryomov <idryomov@gmail.com>
Wed, 14 Aug 2024 17:42:09 +0000 (19:42 +0200)
committerIlya Dryomov <idryomov@gmail.com>
Wed, 21 May 2025 15:27:16 +0000 (17:27 +0200)
... and switch to in-class initializers while at it.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
(cherry picked from commit 23cd20e0d5523efaf6b925df378bb2dd865729aa)

src/librbd/ImageCtx.cc
src/librbd/ImageCtx.h
src/librbd/image/RefreshParentRequest.cc
src/librbd/image/RefreshParentRequest.h

index 7f04ee7cc96433844faee52166182e7bd3bcbd56..1a375177bba345f84f6306aa9c5967661a969f89 100644 (file)
@@ -112,7 +112,7 @@ librados::IoCtx duplicate_io_ctx(librados::IoCtx& io_ctx) {
       old_format(false),
       order(0), size(0), features(0),
       format_string(NULL),
-      id(image_id), parent(NULL),
+      id(image_id),
       stripe_unit(0), stripe_count(0), flags(0),
       readahead(),
       total_bytes_read(0),
@@ -157,6 +157,7 @@ librados::IoCtx duplicate_io_ctx(librados::IoCtx& io_ctx) {
   ImageCtx::~ImageCtx() {
     ldout(cct, 10) << this << " " << __func__ << dendl;
 
+    ceph_assert(parent == nullptr);
     ceph_assert(config_watcher == nullptr);
     ceph_assert(image_watcher == NULL);
     ceph_assert(exclusive_lock == NULL);
index 197fea305b024695c82a80041d84985ded483f0f..4edabf7fd0b1157a5fc764a003245aef364f67b7 100644 (file)
@@ -163,7 +163,7 @@ namespace librbd {
     std::string header_oid;
     std::string id; // only used for new-format images
     ParentImageInfo parent_md;
-    ImageCtx *parent;
+    ImageCtx *parent = nullptr;
     ImageCtx *child = nullptr;
     MigrationInfo migration_info;
     cls::rbd::GroupSpec group_spec;
index 348226c392b736d4bf0658f637aa19b54d518ae5..24b6d990885ed0f84362aaeb83b5293a1242b361 100644 (file)
@@ -28,8 +28,7 @@ RefreshParentRequest<I>::RefreshParentRequest(
     const MigrationInfo &migration_info, Context *on_finish)
   : m_child_image_ctx(child_image_ctx), m_parent_md(parent_md),
     m_migration_info(migration_info), m_on_finish(on_finish),
-    m_parent_image_ctx(nullptr), m_parent_snap_id(CEPH_NOSNAP),
-    m_error_result(0) {
+    m_parent_snap_id(CEPH_NOSNAP), m_error_result(0) {
 }
 
 template <typename I>
index 086d8ec1b9a1befc1a37ad12ca154c054b661c9a..40bb3e086344aee288f542024f64a0a4ad4f8098 100644 (file)
@@ -67,7 +67,7 @@ private:
   MigrationInfo m_migration_info;
   Context *m_on_finish;
 
-  ImageCtxT *m_parent_image_ctx;
+  ImageCtxT *m_parent_image_ctx = nullptr;
   uint64_t m_parent_snap_id;
 
   int m_error_result;