From: Jason Dillaman Date: Tue, 14 Nov 2017 17:07:36 +0000 (-0500) Subject: librbd: added missing locks for snap rollback and rename X-Git-Tag: v12.2.3~93^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2e69cd92d07ca7f7957f67d40d46a04b94ccb0b4;p=ceph.git librbd: added missing locks for snap rollback and rename Signed-off-by: Jason Dillaman (cherry picked from commit 0ccd26f9989b892be2ab620bcf7f4fbf14980e8e) --- 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);