From: Jason Dillaman Date: Fri, 28 Apr 2017 13:24:37 +0000 (-0400) Subject: librbd: get_parent_info should return cached parent name X-Git-Tag: v12.0.3~115^2~3 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=e33c7a7d16537fd4d6355124f5476bf8fc7c482c;p=ceph.git librbd: get_parent_info should return cached parent name Signed-off-by: Jason Dillaman --- diff --git a/src/librbd/internal.cc b/src/librbd/internal.cc index 7558169c9e464..af7a3c60fc692 100644 --- a/src/librbd/internal.cc +++ b/src/librbd/internal.cc @@ -1064,7 +1064,8 @@ int validate_pool(IoCtx &io_ctx, CephContext *cct) { } else { r = ictx->get_parent_spec(ictx->snap_id, &parent_spec); if (r < 0) { - lderr(ictx->cct) << "Can't find snapshot id = " << ictx->snap_id << dendl; + lderr(ictx->cct) << "Can't find snapshot id = " << ictx->snap_id + << dendl; return r; } if (parent_spec.pool_id == -1) @@ -1093,13 +1094,8 @@ int validate_pool(IoCtx &io_ctx, CephContext *cct) { } if (parent_name) { - r = cls_client::dir_get_name(&ictx->parent->md_ctx, RBD_DIRECTORY, - parent_spec.image_id, parent_name); - if (r < 0) { - lderr(ictx->cct) << "error getting parent image name: " - << cpp_strerror(r) << dendl; - return r; - } + RWLock::RLocker snap_locker(ictx->parent->snap_lock); + *parent_name = ictx->parent->name; } return 0;