From: Neha Ojha Date: Fri, 17 Nov 2017 10:50:00 +0000 (+0530) Subject: osd/PG: const cleanup for recoverable/readable predicates X-Git-Tag: v13.0.1~156^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c8419dee19706f6908cc60438f6da2cac6991d6d;p=ceph.git osd/PG: const cleanup for recoverable/readable predicates Signed-off-by: Neha Ojha --- diff --git a/src/osd/ECBackend.h b/src/osd/ECBackend.h index a65b5a07461..dcd5db6b639 100644 --- a/src/osd/ECBackend.h +++ b/src/osd/ECBackend.h @@ -602,7 +602,7 @@ public: return ec_impl->minimum_to_decode(want, have, &min) == 0; } }; - IsPGRecoverablePredicate *get_is_recoverable_predicate() override { + IsPGRecoverablePredicate *get_is_recoverable_predicate() const override { return new ECRecPred(ec_impl); } @@ -622,7 +622,7 @@ public: return _have.count(whoami) && rec_pred(_have); } }; - IsPGReadablePredicate *get_is_readable_predicate() override { + IsPGReadablePredicate *get_is_readable_predicate() const override { return new ECReadPred(get_parent()->whoami_shard(), ec_impl); } diff --git a/src/osd/PG.h b/src/osd/PG.h index 145d4db2982..37cc3e9b983 100644 --- a/src/osd/PG.h +++ b/src/osd/PG.h @@ -572,11 +572,12 @@ protected: bool eio_errors_to_process = false; virtual PGBackend *get_pgbackend() = 0; + virtual const PGBackend* get_pgbackend() const = 0; protected: /*** PG ****/ /// get_is_recoverable_predicate: caller owns returned pointer and must delete when done - IsPGRecoverablePredicate *get_is_recoverable_predicate() { + IsPGRecoverablePredicate *get_is_recoverable_predicate() const { return get_pgbackend()->get_is_recoverable_predicate(); } protected: diff --git a/src/osd/PGBackend.h b/src/osd/PGBackend.h index d819ca5f37b..e03d555b317 100644 --- a/src/osd/PGBackend.h +++ b/src/osd/PGBackend.h @@ -399,8 +399,8 @@ typedef ceph::shared_ptr OSDMapRef; virtual void on_flushed() = 0; - virtual IsPGRecoverablePredicate *get_is_recoverable_predicate() = 0; - virtual IsPGReadablePredicate *get_is_readable_predicate() = 0; + virtual IsPGRecoverablePredicate *get_is_recoverable_predicate() const = 0; + virtual IsPGReadablePredicate *get_is_readable_predicate() const = 0; virtual void dump_recovery_info(Formatter *f) const = 0; diff --git a/src/osd/PrimaryLogPG.h b/src/osd/PrimaryLogPG.h index 00daaa4e001..f0e7d1eb5ad 100644 --- a/src/osd/PrimaryLogPG.h +++ b/src/osd/PrimaryLogPG.h @@ -245,6 +245,10 @@ public: return pgbackend.get(); } + const PGBackend *get_pgbackend() const override { + return pgbackend.get(); + } + /// Listener methods DoutPrefixProvider *get_dpp() override { return this; diff --git a/src/osd/ReplicatedBackend.h b/src/osd/ReplicatedBackend.h index 249b056ff23..4dff93fa7fc 100644 --- a/src/osd/ReplicatedBackend.h +++ b/src/osd/ReplicatedBackend.h @@ -75,7 +75,7 @@ public: return !have.empty(); } }; - IsPGRecoverablePredicate *get_is_recoverable_predicate() override { + IsPGRecoverablePredicate *get_is_recoverable_predicate() const override { return new RPCRecPred; } @@ -87,7 +87,7 @@ public: return have.count(whoami); } }; - IsPGReadablePredicate *get_is_readable_predicate() override { + IsPGReadablePredicate *get_is_readable_predicate() const override { return new RPCReadPred(get_parent()->whoami_shard()); }