From: Jason Dillaman Date: Thu, 24 Mar 2016 16:33:50 +0000 (-0400) Subject: librbd: journal reset should re-register the local client X-Git-Tag: v10.1.1~64^2~14 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5de360dd6439277503a21e4fe9b9f0eaf3cf5aab;p=ceph.git librbd: journal reset should re-register the local client Signed-off-by: Jason Dillaman --- diff --git a/src/librbd/Journal.cc b/src/librbd/Journal.cc index 0e905776bce..1871774ffe0 100644 --- a/src/librbd/Journal.cc +++ b/src/librbd/Journal.cc @@ -429,21 +429,27 @@ int Journal::reset(librados::IoCtx &io_ctx, const std::string &image_id) { int64_t pool_id; journaler.get_metadata(&order, &splay_width, &pool_id); + std::string pool_name; + if (pool_id != -1) { + librados::Rados rados(io_ctx); + r = rados.pool_reverse_lookup(pool_id, &pool_name); + if (r < 0) { + lderr(cct) << "failed to lookup data pool: " << cpp_strerror(r) << dendl; + return r; + } + } + r = journaler.remove(true); if (r < 0) { lderr(cct) << "failed to reset journal: " << cpp_strerror(r) << dendl; return r; } - r = journaler.create(order, splay_width, pool_id); + + r = create(io_ctx, image_id, order, splay_width, pool_name, false); if (r < 0) { lderr(cct) << "failed to create journal: " << cpp_strerror(r) << dendl; return r; } - r = journaler.register_client(bufferlist()); - if (r < 0) { - lderr(cct) << "failed to register client: " << cpp_strerror(r) << dendl; - return r; - } return 0; }