From f68b2178a24613960fe1303ece413b24f3ea02e7 Mon Sep 17 00:00:00 2001 From: Nitzan Mordechai Date: Mon, 14 Apr 2025 11:50:23 +0000 Subject: [PATCH] PrimeryLogPG: don't accept ops with mixed balance_reads and rwordered flags do_op can't accept mixed flag of rwordered and balance_read Fixes: https://tracker.ceph.com/issues/70715 Signed-off-by: Nitzan Mordechai --- src/osd/PrimaryLogPG.cc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/osd/PrimaryLogPG.cc b/src/osd/PrimaryLogPG.cc index 984c981dff4..33fb11e7088 100644 --- a/src/osd/PrimaryLogPG.cc +++ b/src/osd/PrimaryLogPG.cc @@ -2045,6 +2045,15 @@ void PrimaryLogPG::do_op(OpRequestRef& op) } } + // check for op with rwordered and rebalance or localize reads + if ((m->has_flag(CEPH_OSD_FLAG_BALANCE_READS) || m->has_flag(CEPH_OSD_FLAG_LOCALIZE_READS)) && + op->rwordered()) { + dout(4) << __func__ << ": rebelance or localized reads with rwordered not allowed " + << *m << dendl; + osd->reply_op_error(op, -EINVAL); + return; + } + if ((m->get_flags() & (CEPH_OSD_FLAG_BALANCE_READS | CEPH_OSD_FLAG_LOCALIZE_READS)) && op->may_read() && -- 2.39.5