From: Sage Weil Date: Fri, 10 Feb 2017 04:01:14 +0000 (-0500) Subject: osdc/Objecter: force pg_read ops to ignore cache overlay X-Git-Tag: v12.0.1~383^2~10 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ef74cf71aa0dd7fca23d53e947d7f08496a4cee1;p=ceph.git osdc/Objecter: force pg_read ops to ignore cache overlay pg_read is only used for PG listing and hit_set_{list,get}; these operations can't and shouldn't consider the tiering overlay. This makes the _calc_target behavior with the explicit pgid make sense; otherwise, what would it mean to try to read pg x.1 from pool x and get redirected to pg y.1 in pool y? Signed-off-by: Sage Weil --- diff --git a/src/osdc/Objecter.h b/src/osdc/Objecter.h index 582950949219..8756482127ec 100644 --- a/src/osdc/Objecter.h +++ b/src/osdc/Objecter.h @@ -2277,7 +2277,9 @@ public: Context *onack, epoch_t *reply_epoch, int *ctx_budget) { Op *o = new Op(object_t(), oloc, - op.ops, flags | global_op_flags.read() | CEPH_OSD_FLAG_READ, + op.ops, + flags | global_op_flags.read() | CEPH_OSD_FLAG_READ | + CEPH_OSD_FLAG_IGNORE_OVERLAY, onack, NULL); o->target.precalc_pgid = true; o->target.base_pgid = pg_t(hash, oloc.pool);