do_op can't accept mixed flag of rwordered and balance_read
Fixes: https://tracker.ceph.com/issues/70715
Signed-off-by: Nitzan Mordechai <nmordech@redhat.com>
(cherry picked from commit
f68b2178a24613960fe1303ece413b24f3ea02e7)
}
}
+ // 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() &&