From: Patrick Donnelly Date: Fri, 2 Aug 2019 20:29:38 +0000 (-0700) Subject: mds: use const get_request_count X-Git-Tag: v15.1.0~1563^2~6 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2ddcfbdf647d194e6c58f9f37d7a445493056cb4;p=ceph.git mds: use const get_request_count So it can be used from a const dump method. Make the elist mutable instead. Signed-off-by: Patrick Donnelly --- diff --git a/src/mds/SessionMap.cc b/src/mds/SessionMap.cc index d70599e40d0b..925e9aa62cab 100644 --- a/src/mds/SessionMap.cc +++ b/src/mds/SessionMap.cc @@ -874,18 +874,16 @@ void SessionMap::save_if_dirty(const std::set &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::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; diff --git a/src/mds/SessionMap.h b/src/mds/SessionMap.h index 4d57f4b0c14e..5c891dbf2e3c 100644 --- a/src/mds/SessionMap.h +++ b/src/mds/SessionMap.h @@ -176,8 +176,11 @@ public: list> preopen_out_queue; ///< messages for client, queued before they connect - elist 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 requests; + size_t get_request_count() const; interval_set pending_prealloc_inos; // journaling prealloc, will be added to prealloc_inos