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)
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();
}
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();
}