From: Mykola Golub Date: Sat, 21 Jul 2018 06:59:03 +0000 (+0300) Subject: librbd: drop snap lock before sending copyup request X-Git-Tag: v14.0.1~590^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=dbc32361eff9a4d0c553c16c62b77606a59b80e8;p=ceph.git librbd: drop snap lock before sending copyup request Signed-off-by: Mykola Golub --- diff --git a/src/librbd/io/ObjectRequest.cc b/src/librbd/io/ObjectRequest.cc index 647282853b1a..9bb1f50e31c4 100644 --- a/src/librbd/io/ObjectRequest.cc +++ b/src/librbd/io/ObjectRequest.cc @@ -352,13 +352,15 @@ void ObjectReadRequest::copyup() { image_ctx->copyup_list[this->m_object_no] = new_req; image_ctx->copyup_list_lock.Unlock(); + image_ctx->parent_lock.put_read(); + image_ctx->snap_lock.put_read(); new_req->send(); } else { image_ctx->copyup_list_lock.Unlock(); + image_ctx->parent_lock.put_read(); + image_ctx->snap_lock.put_read(); } - image_ctx->parent_lock.put_read(); - image_ctx->snap_lock.put_read(); image_ctx->owner_lock.put_read(); this->finish(0); }