From: Nitzan Mordechai Date: Mon, 14 Apr 2025 11:49:30 +0000 (+0000) Subject: Objecter: remove balance_read and localize_read if rwordered X-Git-Tag: v20.1.0~66^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=73cd5441a0caec147af3066701f201b5b5453a7e;p=ceph.git Objecter: remove balance_read and localize_read if rwordered Objecter shouldn't sent ops with mixed rwordered and balance_read flags Fixes: https://tracker.ceph.com/issues/70715 Signed-off-by: Nitzan Mordechai (cherry picked from commit 40292f2fd10f338c9baab60a019dfe4806e642c7) --- diff --git a/src/osdc/Objecter.h b/src/osdc/Objecter.h index 4167660c5a8..edf0f4d285e 100644 --- a/src/osdc/Objecter.h +++ b/src/osdc/Objecter.h @@ -2933,8 +2933,15 @@ private: int _op_cancel(ceph_tid_t tid, int r); int get_read_flags(int flags) { - return flags | global_op_flags | extra_read_flags.load(std::memory_order_relaxed) | - CEPH_OSD_FLAG_READ; + int ret = flags | global_op_flags | + extra_read_flags.load(std::memory_order_relaxed) | + CEPH_OSD_FLAG_READ; + + // If the op is rwordered, strip out the balanced and localized flags. + if (flags & CEPH_OSD_FLAG_RWORDERED) { + ret &= ~(CEPH_OSD_FLAG_BALANCE_READS | CEPH_OSD_FLAG_LOCALIZE_READS); + } + return ret; } public: