]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librbd: prevent object map updates from being interrupted 5241/head
authorJason Dillaman <dillaman@redhat.com>
Thu, 25 Jun 2015 20:51:31 +0000 (16:51 -0400)
committerAbhishek Lekshmanan <abhishek.lekshmanan@ril.com>
Tue, 14 Jul 2015 14:11:49 +0000 (19:41 +0530)
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 <dillaman@redhat.com>
(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

src/librbd/ObjectMap.h

index 596f5cf6f4b705cc1029e4c1378359e26e9ead4e..fd1350c6331cb5676bc49415ca0a120cd0ea4f3f 100644 (file)
@@ -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