]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mds: use const get_request_count
authorPatrick Donnelly <pdonnell@redhat.com>
Fri, 2 Aug 2019 20:29:38 +0000 (13:29 -0700)
committerPatrick Donnelly <pdonnell@redhat.com>
Fri, 13 Sep 2019 00:42:03 +0000 (17:42 -0700)
So it can be used from a const dump method. Make the elist mutable
instead.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
src/mds/SessionMap.cc
src/mds/SessionMap.h

index d70599e40d0b9abd891ff2a95f82c66497875227..925e9aa62cabd5a40fda18b27689969d30157c94 100644 (file)
@@ -874,18 +874,16 @@ void SessionMap::save_if_dirty(const std::set<entity_name_t> &tgt_sessions,
  * Calculate the length of the `requests` member list,
  * because elist does not have a size() method.
  *
- * O(N) runtime.  This would be const, but elist doesn't
- * have const iterators.
+ * O(N) runtime.
  */
-size_t Session::get_request_count()
+size_t Session::get_request_count() const
 {
   size_t result = 0;
 
-  elist<MDRequestImpl*>::iterator p = requests.begin(
-      member_offset(MDRequestImpl, item_session_request));
-  while (!p.end()) {
+  auto it = requests.begin(member_offset(MDRequestImpl, item_session_request));
+  while (!it.end()) {
     ++result;
-    ++p;
+    ++it;
   }
 
   return result;
index 4d57f4b0c14e24d83df650154807d6b4c3c31ba2..5c891dbf2e3c14a1b0abd430554ce37ef9d2ecae 100644 (file)
@@ -176,8 +176,11 @@ public:
 
   list<ref_t<Message>> preopen_out_queue;  ///< messages for client, queued before they connect
 
-  elist<MDRequestImpl*> requests;
-  size_t get_request_count();
+  /* This is mutable to allow get_request_count to be const. elist does not
+   * support const iterators yet.
+   */
+  mutable elist<MDRequestImpl*> requests;
+  size_t get_request_count() const;
 
   interval_set<inodeno_t> pending_prealloc_inos; // journaling prealloc, will be added to prealloc_inos