Chinaunix首页 | 论坛 | 博客
  • 博客访问: 402607
  • 博文数量: 124
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 872
  • 用 户 组: 普通用户
  • 注册时间: 2018-03-29 14:38
个人简介

默默的一块石头

文章分类

全部博文(124)

文章存档

2022年(26)

2021年(10)

2020年(28)

2019年(60)

我的朋友

分类: LINUX

2019-08-07 16:46:33

在内核里面可以通过 kern_path() 获取路径所对应的 sturct path 结构,path 结构里面包含了文件系统 mount 时的 vfsmount 信息和挂载点路径的 dentry 信息,struct path 定义如下:

struct path {
	struct vfsmount *mnt;
	struct dentry *dentry;
}; 

struct vfsmount {  //root的相关信息
  struct dentry *mnt_root; /* root of the mounted tree */
  struct super_block *mnt_sb; /* pointer to superblock */
  int mnt_flags;
};

其中struct vfsmount 里面包含了底层文件系统的挂载点的 dentry 和 super block。通过 super block 和 dentry 结构,我们能获得操作底层文件系统的方法。

struct qstr/char * name(创建文件夹的路径名)/name(创建文件夹的路径名中所分别对应的文件夹名)对应的hash值 ,通过此hash值找到创建文件夹的父目录所对应的dentry,通过此dentry找到super_block进行索引节点的创建。

阅读(1198) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~