From: runsisi Date: Wed, 14 Dec 2016 07:18:18 +0000 (+0800) Subject: librbd: ignore error when object map is already locked by current client X-Git-Tag: v11.1.1~45^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F12484%2Fhead;p=ceph.git librbd: ignore error when object map is already locked by current client otherwise when using rbd cli to rollback image with object-map feature enabled, the following error message will be printed out on the screen, which is confusing to users: librbd::object_map::LockRequest: failed to lock object map: (17) File exists Fixes: http://tracker.ceph.com/issues/16179 Signed-off-by: runsisi --- diff --git a/src/librbd/object_map/LockRequest.cc b/src/librbd/object_map/LockRequest.cc index 213799aabc5ca..f5687f7f5dba0 100644 --- a/src/librbd/object_map/LockRequest.cc +++ b/src/librbd/object_map/LockRequest.cc @@ -54,6 +54,10 @@ Context *LockRequest::handle_lock(int *ret_val) { if (*ret_val == 0) { return m_on_finish; + } else if (*ret_val == -EEXIST) { + // already locked by myself + *ret_val = 0; + return m_on_finish; } else if (m_broke_lock || *ret_val != -EBUSY) { lderr(cct) << "failed to lock object map: " << cpp_strerror(*ret_val) << dendl;