summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2013-10-01 15:53:42 -0700
committerSage Weil <sage@inktank.com>2013-10-01 15:55:43 -0700
commitde40d0b3e35ab0124cd3c4ebfcaa435ab8abfab9 (patch)
tree78addfb6c686649903d811d67351ab37bb2ee6b8
parent32f5233288c47d95b87c0a9cab5f9c2ffcf15417 (diff)
downloadceph-de40d0b3e35ab0124cd3c4ebfcaa435ab8abfab9.tar.gz
crush: invalidate rmap on create (and thus decode)
If we have an existing CrushWrapper object and decode from a bufferlist, reset build_rmaps so that they get rebuilt. Remove the build_rmaps() all in decode that was useless on a redecode (because have_rmaps == true in that case and it did nothing). Fixes: #6442 Backport: dumpling, maybe cuttlefish Signed-off-by: Sage Weil <sage@inktank.com> Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com> (cherry picked from commit 9b7a2ae329b6a511064dd3d6e549ba61f52cfd21)
-rw-r--r--src/crush/CrushWrapper.cc1
-rw-r--r--src/crush/CrushWrapper.h1
2 files changed, 1 insertions, 1 deletions
diff --git a/src/crush/CrushWrapper.cc b/src/crush/CrushWrapper.cc
index bab9f9a817e..d17166bc4a9 100644
--- a/src/crush/CrushWrapper.cc
+++ b/src/crush/CrushWrapper.cc
@@ -861,7 +861,6 @@ void CrushWrapper::decode(bufferlist::iterator& blp)
decode_32_or_64_string_map(type_map, blp);
decode_32_or_64_string_map(name_map, blp);
decode_32_or_64_string_map(rule_name_map, blp);
- build_rmaps();
// tunables
if (!blp.end()) {
diff --git a/src/crush/CrushWrapper.h b/src/crush/CrushWrapper.h
index 80906e4fe18..b4bb67bb742 100644
--- a/src/crush/CrushWrapper.h
+++ b/src/crush/CrushWrapper.h
@@ -94,6 +94,7 @@ public:
crush_destroy(crush);
crush = crush_create();
assert(crush);
+ have_rmaps = false;
}
// tunables