super_operations

cephfs linux kernel client针对superblock操作流程的分析

允我心安 提交于 2019-12-07 14:03:05
init_caches() 初始化如下几个cache: ceph_inode_cachep ceph_cap_cachep ceph_cap_flush_cachep ceph_dentry_cachep ceph_file_cachep cephfs cache ceph_mount() |__解析mount options |__创建fs client,即:struct ceph_fs_client |__创建mds client且设置fs client和mds client之间的对应关系 |__得到superblock且使用ceph_set_super()函数初始化 |__调用ceph_real_mount()函数来执行实际的mount操作 ceph_real_mount() |__若superblock中对应的s_boot为空 |__调用__ceph_open_session()函数创建client到mds的session信息 |__调用open_root_dentry()函数得到cephfs的root dentry信息 |__将root dentry写入到superblock中的s_boot中 |__若mount options中没有server path内容 |__设置当前root为supberblock对应的s_root |__调用dget(root