From: Matan Breizman Date: Wed, 15 Mar 2023 15:52:16 +0000 (+0000) Subject: crimson/osd/osd_operations/client_request: Support librados::OPERATION_ORDERSNAP X-Git-Tag: v19.0.0~1527^2~1 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=749e0ec558b1fc0415fcc14afee88180d6f3e106;p=ceph.git crimson/osd/osd_operations/client_request: Support librados::OPERATION_ORDERSNAP Signed-off-by: Matan Breizman --- diff --git a/src/crimson/osd/osd_operations/client_request.cc b/src/crimson/osd/osd_operations/client_request.cc index 20fc7beb9e106..96ff12a1e8182 100644 --- a/src/crimson/osd/osd_operations/client_request.cc +++ b/src/crimson/osd/osd_operations/client_request.cc @@ -291,6 +291,15 @@ ClientRequest::do_process( SnapContext snapc = get_snapc(pg,obc); + if ((m->has_flag(CEPH_OSD_FLAG_ORDERSNAP)) && + snapc.seq < obc->ssc->snapset.seq) { + logger().debug("{} ORDERSNAP flag set and snapc seq {}", + " < snapset seq {} on {}", + __func__, snapc.seq, obc->ssc->snapset.seq, + obc->obs.oi.soid); + return reply_op_error(pg, -EOLDSNAPC); + } + if (!pg->is_primary()) { // primary can handle both normal ops and balanced reads if (is_misdirected(*pg)) {