From c645d26cf6753d7438099b66b292da1932147a9e Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 12 Jun 2009 12:50:09 -0700 Subject: [PATCH] osd: autodetect PGOP flag if there are PG ops Avoids requiring the client to specify. --- src/osd/OSD.cc | 4 ++++ src/osd/ReplicatedPG.cc | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 95b6d0f1be556..40b6de9381135 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -3918,6 +3918,10 @@ void OSD::init_op_flags(MOSDOp *op) if (iter->op.op & CEPH_OSD_OP_MODE_RD) op->rmw_flags |= CEPH_OSD_FLAG_READ; + // set PGOP flag if there are PG ops + if (iter->op.op & CEPH_OSD_OP_TYPE_PG) + op->rmw_flags |= CEPH_OSD_FLAG_PGOP; + switch (iter->op.op) { case CEPH_OSD_OP_CALL: { diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 02801f57b204a..e071ab6cc3050 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -421,7 +421,7 @@ void ReplicatedPG::do_op(MOSDOp *op) { osd->logger->inc(l_osd_op); - if ((op->get_flags() & CEPH_OSD_FLAG_PGOP)) + if ((op->get_rmw_flags() & CEPH_OSD_FLAG_PGOP)) return do_pg_op(op); dout(0) << "do_op " << *op << dendl; -- 2.39.5