]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osdc/Objecter: force pg_read ops to ignore cache overlay
authorSage Weil <sage@redhat.com>
Fri, 10 Feb 2017 04:01:14 +0000 (23:01 -0500)
committerSage Weil <sage@redhat.com>
Tue, 14 Feb 2017 04:03:51 +0000 (23:03 -0500)
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 <sage@redhat.com>
src/osdc/Objecter.h

index 58295094921941544ed13588c3c0c958eed9fc31..8756482127ec84bef33e48e6a0524462bb590a91 100644 (file)
@@ -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);