struct dentry *d_alloc(struct dentry * parent, const struct qstr *name) 用于申请并返回一个dentry
其源码分析如下:
struct dentry *d_alloc(struct dentry * parent, const struct qstr *name)
{
#这些首先申请一个dentry的结构体
struct dentry *dentry = __d_alloc(parent->d_sb, name);
#如果申请到的结构体为null,则脱出并返回null
if (!dentry)
return NULL;
#flag赋值
dentry->d_flags |= DCACHE_RCUACCESS;
spin_lock(&parent->d_lock);
/*
* don't need child lock because it is not subject
* to concurrency here
*/
__dget_dlock(parent);
#d_parent 赋值
dentry->d_parent = parent;
#将这个dentry加到父dentry的list中
list_add(&dentry->d_child, &parent->d_subdirs);
spin_unlock(&parent->d_lock);
#返回这个已经赋值过的dentry
return dentry;
}
内核文件系统API之d_alloc
最新推荐文章于 2022-12-02 23:22:44 发布