]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: trim cache after journal flush 26214/head
authorPatrick Donnelly <pdonnell@redhat.com>
Tue, 22 Jan 2019 20:12:55 +0000 (12:12 -0800)
committerPrashant D <pdhange@redhat.com>
Wed, 30 Jan 2019 23:09:06 +0000 (18:09 -0500)
Dropping cache should trim the cache only after journal flush otherwise dirty
inodes will remain pinned in cache.

Fixes: http://tracker.ceph.com/issues/38010
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit d7f6c1583b4162fade434e376176f3068472f53f)

src/mds/MDSRank.cc

index 325dc6cab9bafbfa30dd45c7a89c000a13f3389f..fc2d9d14e304d474cba517a95a61e4edcac095b8 100644 (file)
@@ -347,18 +347,6 @@ private:
     f->close_section();
 
     // we can still continue after recall timeout
-    trim_cache();
-  }
-
-  void trim_cache() {
-    dout(20) << __func__ << dendl;
-
-    if (!mdcache->trim(UINT64_MAX)) {
-      cmd_err(f, "failed to trim cache");
-      complete(-EINVAL);
-      return;
-    }
-
     flush_journal();
   }
 
@@ -388,6 +376,18 @@ private:
     f->dump_string("message", ss.str());
     f->close_section();
 
+    trim_cache();
+  }
+
+  void trim_cache() {
+    dout(20) << __func__ << dendl;
+
+    if (!mdcache->trim(UINT64_MAX)) {
+      cmd_err(f, "failed to trim cache");
+      complete(-EINVAL);
+      return;
+    }
+
     cache_status();
   }