From: Jason Dillaman Date: Fri, 18 Dec 2015 21:40:35 +0000 (-0500) Subject: librbd: uninitialized state in snap remove state machine X-Git-Tag: v10.0.3~201^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6d9da6a6413a8b583080eb29d3074992f9a463ca;p=ceph.git librbd: uninitialized state in snap remove state machine Signed-off-by: Jason Dillaman --- diff --git a/src/librbd/operation/SnapshotRemoveRequest.cc b/src/librbd/operation/SnapshotRemoveRequest.cc index a227be446f3b..4893ad1c942e 100644 --- a/src/librbd/operation/SnapshotRemoveRequest.cc +++ b/src/librbd/operation/SnapshotRemoveRequest.cc @@ -34,6 +34,9 @@ std::ostream& operator<<(std::ostream& os, case SnapshotRemoveRequest::STATE_RELEASE_SNAP_ID: os << "RELEASE_SNAP_ID"; break; + case SnapshotRemoveRequest::STATE_ERROR: + os << "STATE_ERROR"; + break; default: os << "UNKNOWN (" << static_cast(state) << ")"; break; @@ -127,6 +130,8 @@ void SnapshotRemoveRequest::send_remove_child() { int r = image_ctx.get_parent_spec(m_snap_id, &our_pspec); if (r < 0) { lderr(cct) << "failed to retrieve parent spec" << dendl; + m_state = STATE_ERROR; + this->async_complete(r); return; } diff --git a/src/librbd/operation/SnapshotRemoveRequest.h b/src/librbd/operation/SnapshotRemoveRequest.h index ea950a55d357..48e14ae74f83 100644 --- a/src/librbd/operation/SnapshotRemoveRequest.h +++ b/src/librbd/operation/SnapshotRemoveRequest.h @@ -52,7 +52,8 @@ public: STATE_REMOVE_OBJECT_MAP, STATE_REMOVE_CHILD, STATE_REMOVE_SNAP, - STATE_RELEASE_SNAP_ID + STATE_RELEASE_SNAP_ID, + STATE_ERROR }; SnapshotRemoveRequest(ImageCtxT &image_ctx, Context *on_finish,