From 711da4e2396a8967cd457133a847d40cb46b0a5a Mon Sep 17 00:00:00 2001 From: runsisi Date: Wed, 14 Dec 2016 15:18:18 +0800 Subject: [PATCH] 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 --- src/librbd/object_map/LockRequest.cc | 4 ++++ 1 file changed, 4 insertions(+) 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; -- 2.39.5