discover发送端通过调用_send_discover()函数来创建MDiscover类消息,之后将该类消息发送给目的MDS进程。discover可以寻找base inode、Dir、Dentry以及Dentry::linkage对应的Inode。
discover接收端通过调用handle_discover()来处理MDiscover类消息。在该函数中通过分析MDiscover类消息中的字段分别将base inode对应的CInode信息、Dir对应的CDir信息、Dentry对应的CDentry信息以及Dentry::linkage对应的Inode的CInode信息填写到MDiscoverReply类消息中。最后将MDiscoverReply类消息发送回给discover发送端。
discover发送端通过调用handle_discover_reply()函数来处理discover的回复消息MDiscoverReply。在该函数中分别解析base inode、Dir、Dentry以及Dentry::linkage对应的Inode信息,最后将对应的信息添加到MDCache中。