[文件系统]文件系统学习笔记(十一)——部分代码详解
2014-08-12 15:12
531 查看
1,alloc_vfsmnt()函数
static struct mount *alloc_vfsmnt(const char *name) { struct mount *mnt = kmem_cache_zalloc(mnt_cache, GFP_KERNEL);//在slab高速缓存mnt_cache上分配一个mount结构体,在Namespace.c文件的mnt_int()函数中调用kmem_cache_creat()函数创建名为mnt_cache的缓存 if (mnt) { int err; err = mnt_alloc_id(mnt); if (err) goto out_free_cache; if (name) { mnt->mnt_devname = kstrdup(name, GFP_KERNEL);//将mount->mnt_devname变量赋值为设备名(如/dev/block/mmcblk0p7等) if (!mnt->mnt_devname) goto out_free_id; } mnt->mnt_pcp = alloc_percpu(struct mnt_pcp);//分配per-cpu变量,每个cpu维护一个变量的副本,每个cpu只会操作到自己cpu对应数组的那个元素 if (!mnt->mnt_pcp) goto out_free_devname; this_cpu_add(mnt->mnt_pcp->mnt_count, 1); INIT_LIST_HEAD(&mnt->mnt_hash); INIT_LIST_HEAD(&mnt->mnt_child); INIT_LIST_HEAD(&mnt->mnt_mounts); INIT_LIST_HEAD(&mnt->mnt_list); INIT_LIST_HEAD(&mnt->mnt_expire); INIT_LIST_HEAD(&mnt->mnt_share); INIT_LIST_HEAD(&mnt->mnt_slave_list); INIT_LIST_HEAD(&mnt->mnt_slave); INIT_HLIST_HEAD(&mnt->mnt_fsnotify_marks); } return mnt; }
相关文章推荐
- [文件系统]文件系统学习笔记(十一)——mount系统调用(其它)
- Linux 学习笔记 -- 第二部分 Linux 文件、目录与磁盘格式 -- 第9章 文件与文件系统的压缩与打包
- Cocos2d-x 文件系统学习笔记 分类: cocos2d代码编写 2015-07-27 19:04 5人阅读 评论(0) 收藏
- PHP学习笔记十一之文件系统(进阶篇)
- Linux 学习笔记 -- 第二部分 Linux 文件、目录与磁盘格式 -- 第8章 Linux 磁盘与文件系统管理
- [文件系统]文件系统学习笔记(十一)——mount系统调用(其它)
- 第一行代码学习笔记-第一章 开始启程-2.安卓系统文件介绍
- 学习笔记∣stm32l0xx时钟系统详解与代码配置
- [文件系统]文件系统学习笔记(八)---mount系统调用(代码相关)
- Linux文件系统代码学习笔记2——Hash表&内存inode的创建与回收
- Linux 学习笔记 -- 第四部分 Linux 使用着管理 -- 第15章 磁盘配额 (Quota) 与高级文件系统管理
- php学习笔记(十一)文件系统
- [文件系统]文件系统学习笔记(八)---mount系统调用(代码相关)
- Red Hat linux 6.5 学习使用笔记《二》文件系统及命令详解
- ibatis学习笔记(二)>>>>>>>sqlMapConfig.xml文件详解
- Java基础学习笔记(十一)I/O 文件访问
- 步步为营 .NET 代码重构学习笔记 十一
- jQuery 学习笔记之十一 (jQuery ajax 详解)
- 【转】AFS文件系统学习笔记
- 操作系统学习笔记(33)--文件系统