]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: cleanup code that kills session requests
authorYan, Zheng <zyan@redhat.com>
Mon, 30 Sep 2019 06:20:17 +0000 (14:20 +0800)
committerVicente Cheng <freeze.bilsted@gmail.com>
Fri, 10 Apr 2020 07:04:48 +0000 (07:04 +0000)
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
(cherry picked from commit a10f051af25640def2ca6132de42693975de5ba1)

src/mds/Server.cc
src/mds/SessionMap.cc
src/mds/SessionMap.h

index 42d15f96427931f589dedd1fbd83e9987ec007bf..56521c754a0dc6a4c33e63a325ab21dd16b9a269 100644 (file)
@@ -1205,11 +1205,8 @@ void Server::journal_close_session(Session *session, int state, Context *on_safe
   mdlog->flush();
 
   // clean up requests, too
-  elist<MDRequestImpl*>::iterator p =
-    session->requests.begin(member_offset(MDRequestImpl,
-                                         item_session_request));
-  while (!p.end()) {
-    MDRequestRef mdr = mdcache->request_get((*p)->reqid);
+  for (auto p = session->requests.begin(); !p.end(); ) {
+    MDRequestRef mdr(*p);
     ++p;
     mdcache->request_kill(mdr);
   }
index 3259d5f807ec50a6b50771cc49a76a3ca4bf6991..ae80cef5d4bb1b559c2969d0f685a0826d36c47d 100644 (file)
@@ -891,13 +891,8 @@ void SessionMap::save_if_dirty(const std::set<entity_name_t> &tgt_sessions,
 size_t Session::get_request_count() const
 {
   size_t result = 0;
-
-  auto it = requests.begin(member_offset(MDRequestImpl, item_session_request));
-  while (!it.end()) {
+  for (auto p = requests.begin(); !p.end(); ++p)
     ++result;
-    ++it;
-  }
-
   return result;
 }
 
index 6f694b8c32a9ad5838357c349fafe45fb07bf2ed..fd2ba781e6c680e26222e4df7424037c5946e39d 100644 (file)
@@ -425,7 +425,7 @@ public:
     birth_time(clock::now()),
     auth_caps(g_ceph_context),
     item_session_list(this),
-    requests(0)  // member_offset passed to front() manually
+    requests(member_offset(MDRequestImpl, item_session_request))
   {
     set_connection(std::move(con));
   }