dentry_operations

cephfs kernel client针对dentry的操作

北城以北 提交于 2019-12-07 14:02:38
cephfs kernel client针对dentry的操作 const struct dentry_operations ceph_dentry_ops = { .d_revalidate = ceph_d_revalidate, .d_release = ceph_d_release, .d_prune = ceph_d_prune, }; ceph_d_revalidate(struct dentry *dentry, unsigned int flags) 用于检查cache中的dentry是否有效 |__调用dget_parent()函数得到dentry对应的parent dentry |__调用d_inode()函数得到parent dentry对应的struct inode数据 |__调用dentry_lease_is_valid()函数检查dentry lease是否有效 |__若无效 |__得到操作码op=CEPH_MDS_OP_LOOKUPSNAP或者CEPH_MDS_OP_LOOKUP |__调用ceph_mdsc_create_request()函数创建mds请求 |__调用ceph_mdsc_do_request()函数将请求同步发送给mds进程 |__调用ceph_dentry_lru_touch()函数将dentry添加到lru中 ceph_d