| 4985 | }; |
| 4986 | |
| 4987 | void Client::_invalidate_kernel_dcache() |
| 4988 | { |
| 4989 | RWRef_t mref_reader(mount_state, CLIENT_MOUNTING); |
| 4990 | if (!mref_reader.is_state_satisfied()) |
| 4991 | return; |
| 4992 | |
| 4993 | if (can_invalidate_dentries) { |
| 4994 | if (dentry_invalidate_cb && root->dir) { |
| 4995 | for (auto p = root->dir->dentries.begin(); |
| 4996 | p != root->dir->dentries.end(); |
| 4997 | ++p) { |
| 4998 | if (p->second->inode) |
| 4999 | _schedule_invalidate_dentry_callback(p->second, false); |
| 5000 | } |
| 5001 | } |
| 5002 | } else if (remount_cb) { |
| 5003 | // Hacky: |
| 5004 | // when remounting a file system, linux kernel trims all unused dentries in the fs |
| 5005 | remount_finisher.queue(new C_Client_Remount(this)); |
| 5006 | } |
| 5007 | } |
| 5008 | |
| 5009 | void Client::_trim_negative_child_dentries(const InodeRef& in) |
| 5010 | { |
nothing calls this directly
no test coverage detected