From: Jason Dillaman Date: Thu, 25 Jun 2015 20:51:31 +0000 (-0400) Subject: librbd: prevent object map updates from being interrupted X-Git-Tag: v0.94.3~26^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F5241%2Fhead;p=ceph.git librbd: prevent object map updates from being interrupted Object map updates were being canceled in-flight when the exclusive lock is released. This resulted in an ERESTART error code bubbling up to AioRequest. Fixes: 12165 Backport: hammer Signed-off-by: Jason Dillaman (cherry picked from commit 590cdc90edaf4f4ff06c97eb2f43b92ab9b60084) Conflicts: src/librbd/ObjectMap.h conflict due to a variable `m_snap_id' which was introduced in PR #4140 which is dropped as we are not backporting that feature --- diff --git a/src/librbd/ObjectMap.h b/src/librbd/ObjectMap.h index 596f5cf6f4b7..fd1350c6331c 100644 --- a/src/librbd/ObjectMap.h +++ b/src/librbd/ObjectMap.h @@ -58,6 +58,10 @@ private: } protected: + + virtual bool safely_cancel(int r) { + return false; + } virtual bool should_complete(int r); virtual int filter_return_code(int r) { // never propagate an error back to the caller