MDCache中handle_cache_expire()函数处理MCacheExpire类消息。发送MCacheExpire类消息的MDS进程已经出现了若干个inode、dir以及dentry在cache中超时的状况,所以发送MCacheExpire类消息的MDS进程须要将这些消息同步到其余的MDS进程上。接收到MCacheExpire类消息的MDS进程首先遍历MCacheExpire类消息中的realms数组,对于MDS进程的export_state处于EXPORTING/LOGGINGFINISH/WARNING/NOTIFYING则将MCacheExpire类消息保存到delayed_expire数组中。遍历MDCacheExpire类消息中的inodes数组且调用inode_remove_replica()函数将inode信息从MDCache中删除,以后遍历MDCacheExpire类消息中的dirs数组且调用dir->remove_replica()函数将dir信息从MDCache中删除,最后遍历dentries数组且调用dentry_remove_replica()函数将dentry信息从MDCache中删除。node