]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
PG::can_discard_op: do discard old subopreplies
authorSamuel Just <sam.just@inktank.com>
Wed, 27 Aug 2014 23:21:41 +0000 (16:21 -0700)
committerSamuel Just <sam.just@inktank.com>
Tue, 9 Sep 2014 17:44:03 +0000 (10:44 -0700)
Otherwise, a sub_op_reply from a previous interval can stick around
until we either one day go active again and get rid of it or delete the
pg which is holding it on its waiting_for_active list.  While it sticks
around futily waiting for the pg to once more go active, it will cause
harmless slow request warnings.

Fixes: #9259
Backport: firefly
Signed-off-by: Samuel Just <sam.just@inktank.com>
(cherry picked from commit ae3d87348ca4e2dde809c9593b0d54ce0469f7a0)

src/osd/PG.cc

index 6394e1bd4be1f95f96bd064624402091b988530e..8f4ef2c8bf77f386522e22b54124601adb416ad8 100644 (file)
@@ -5138,7 +5138,7 @@ bool PG::can_discard_request(OpRequestRef op)
   case MSG_OSD_PG_PUSH_REPLY:
     return can_discard_replica_op<MOSDPGPushReply, MSG_OSD_PG_PUSH_REPLY>(op);
   case MSG_OSD_SUBOPREPLY:
-    return false;
+    return can_discard_replica_op<MOSDSubOpReply, MSG_OSD_SUBOPREPLY>(op);
 
   case MSG_OSD_EC_WRITE:
     return can_discard_replica_op<MOSDECSubOpWrite, MSG_OSD_EC_WRITE>(op);