MDCache中handle_open_ino()函數負責處理MMDSOpenIno類消息。首先經過調用get_inode()獲得CInode類對象,以後建立MMDSOpenInoReply類消息,若CInode是auth的則將從CInode一直到其根目錄的全部目錄保存到MMDSOpenInoReply類消息的ancestors數組中,最後將MMDSOpenInoReply類消息發送給目的MDS進程。node
MDCache中handle_open_ino_reply()函數負責處理MMDSOpenInoReply類消息。首先從opening_inodes數組中獲得對應的open_ino_info_t對象,以後調用get_inode()函數獲得CInode類對象,若CInode類對象存在則調用open_ino_finish()函數完成open ino操做,不然若MMDSOpenInoReply類消息中的ancestors數組不爲空則調用_open_ino_traverse_dir()函數來部署CInode及其全部的父目錄。數組