]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
erasure-code: OSDMonitor::get_erasure_code is a const
authorLoic Dachary <loic@dachary.org>
Wed, 11 Jun 2014 20:47:49 +0000 (22:47 +0200)
committerLoic Dachary <loic@dachary.org>
Mon, 30 Jun 2014 14:17:59 +0000 (16:17 +0200)
If it is not, the non const version of OSDMap::get_erasure_code_profile
is called and a profile is created as a side effect, which is not
intended.

http://tracker.ceph.com/issues/8307 refs: #8307

Signed-off-by: Loic Dachary <loic@dachary.org>
(cherry picked from commit 3c638111a4943758b6089c63a42aabbf281ac257)

src/mon/OSDMonitor.cc
src/mon/OSDMonitor.h

index 6d6999fa0d2bff99b4e0bfb2fc7d1169526226c1..c949a8b4f22a7e378eeecb6c970348095e3e84f5 100644 (file)
@@ -2952,7 +2952,7 @@ int OSDMonitor::crush_ruleset_create_erasure(const string &name,
 
 int OSDMonitor::get_erasure_code(const string &erasure_code_profile,
                                 ErasureCodeInterfaceRef *erasure_code,
-                                stringstream &ss)
+                                stringstream &ss) const
 {
   if (pending_inc.has_erasure_code_profile(erasure_code_profile))
     return -EAGAIN;
index afc08f0c7983e986fdd1755846fb94397d4b437a..2d86be1823f697b5bb7582eabf1c6fe744885109 100644 (file)
@@ -249,7 +249,7 @@ private:
                                   stringstream &ss);
   int get_erasure_code(const string &erasure_code_profile,
                       ErasureCodeInterfaceRef *erasure_code,
-                      stringstream &ss);
+                      stringstream &ss) const;
   int prepare_pool_crush_ruleset(const unsigned pool_type,
                                 const string &erasure_code_profile,
                                 const string &ruleset_name,