]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
osdc/Objecter: return EIO for new linger ops
authorSage Weil <sage@newdream.net>
Wed, 15 Sep 2021 23:06:11 +0000 (19:06 -0400)
committerSage Weil <sage@newdream.net>
Fri, 24 Sep 2021 16:25:13 +0000 (12:25 -0400)
Signed-off-by: Sage Weil <sage@newdream.net>
src/osdc/Objecter.cc

index a9f87b5bdff80f0f19b4e4d3e388df58bca2edeb..e158ce9d495268528061eb9728a27774de78424e 100644 (file)
@@ -871,10 +871,15 @@ void Objecter::_linger_submit(LingerOp *info,
 
   // Populate Op::target
   OSDSession *s = NULL;
-  _calc_target(&info->target, nullptr);
+  int r = _calc_target(&info->target, nullptr);
+  switch (r) {
+  case RECALC_OP_TARGET_POOL_EIO:
+    _check_linger_pool_eio(info);
+    return;
+  }
 
   // Create LingerOp<->OSDSession relation
-  int r = _get_session(info->target.osd, &s, sul);
+  r = _get_session(info->target.osd, &s, sul);
   ceph_assert(r == 0);
   unique_lock sl(s->lock);
   _session_linger_op_assign(s, info);