From d65a3c3c9ead5d0750fa90d770c69576defa62e0 Mon Sep 17 00:00:00 2001 From: Zhi Zhang Date: Mon, 5 Mar 2018 11:04:36 +0800 Subject: [PATCH] client: use either dentry_invalidate_cb or remount_cb to invalidate kernel dcache Signed-off-by: Zhi Zhang (cherry picked from commit 6b823dc250223c2c25c341d6ffcfa64510f47bb2) --- src/client/Client.cc | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/client/Client.cc b/src/client/Client.cc index e0b0771893a32..102a1ae2bd5d2 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -4064,12 +4064,14 @@ void Client::_invalidate_kernel_dcache() { if (unmounting) return; - if (can_invalidate_dentries && dentry_invalidate_cb && root->dir) { - for (ceph::unordered_map::iterator p = root->dir->dentries.begin(); - p != root->dir->dentries.end(); - ++p) { - if (p->second->inode) - _schedule_invalidate_dentry_callback(p->second, false); + if (can_invalidate_dentries) { + if (dentry_invalidate_cb && root->dir) { + for (ceph::unordered_map::iterator p = root->dir->dentries.begin(); + p != root->dir->dentries.end(); + ++p) { + if (p->second->inode) + _schedule_invalidate_dentry_callback(p->second, false); + } } } else if (remount_cb) { // Hacky: -- 2.39.5