From 2e69cd92d07ca7f7957f67d40d46a04b94ccb0b4 Mon Sep 17 00:00:00 2001 From: Jason Dillaman Date: Tue, 14 Nov 2017 12:07:36 -0500 Subject: [PATCH] librbd: added missing locks for snap rollback and rename Signed-off-by: Jason Dillaman (cherry picked from commit 0ccd26f9989b892be2ab620bcf7f4fbf14980e8e) --- src/librbd/Operations.cc | 1 + src/librbd/operation/SnapshotRollbackRequest.cc | 1 + 2 files changed, 2 insertions(+) diff --git a/src/librbd/Operations.cc b/src/librbd/Operations.cc index 3a9d1dacb8f5..5a6303670e74 100644 --- a/src/librbd/Operations.cc +++ b/src/librbd/Operations.cc @@ -585,6 +585,7 @@ void Operations::execute_rename(const std::string &dest_name, m_image_ctx.image_watcher->register_watch(on_finish); }); on_finish = new FunctionContext([this, dest_name, on_finish](int r) { + RWLock::RLocker owner_locker(m_image_ctx.owner_lock); operation::RenameRequest *req = new operation::RenameRequest( m_image_ctx, on_finish, dest_name); req->send(); diff --git a/src/librbd/operation/SnapshotRollbackRequest.cc b/src/librbd/operation/SnapshotRollbackRequest.cc index 2dcffbc01891..f224b68fcc4f 100644 --- a/src/librbd/operation/SnapshotRollbackRequest.cc +++ b/src/librbd/operation/SnapshotRollbackRequest.cc @@ -134,6 +134,7 @@ void SnapshotRollbackRequest::send_resize_image() { CephContext *cct = image_ctx.cct; ldout(cct, 5) << this << " " << __func__ << dendl; + RWLock::RLocker owner_locker(image_ctx.owner_lock); Context *ctx = create_context_callback< SnapshotRollbackRequest, &SnapshotRollbackRequest::handle_resize_image>(this); -- 2.47.3