设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 操作系统 >> Linux >> Linux 内核文件系统与设备操作流程分析
精品推荐
Linux点击TOP10
·Linux下安装LumaQQ
·口袋里的Linux:在您的U盘上运行SLAX
·Linux命令Man解释:PPPD(8) :点对点daemon协议
·虚拟网络计算工具VNC使用指南
·Linux系统中如何正确安装摄像头驱动
·Linux 内核文件系统与设备操作流程分析
·Linux 核心--4.内存管理
·Ethernet HOWTO Linux以太网-HOWTO (4)型号的信息
·Linux精彩桌面 GNOME桌面主题安装实例
·Linux下Flash/Shockwave播放器安装
操作系统点击TOP10
·Windows Vista完全硬盘安装法
·Windows Vista 激活不求人
·Windows Vista局域网网络连接设置
·Windows Vista系统动态桌面截图欣赏
·Windows XP中磁盘的分区应用
·Windows NT/2000/XP 出现蓝屏并显示“STOP 0x0000007f”错误
·让Windows XP变身Vista
·一招搞定Vista系统软件不兼容问题
·教你如何正确配置和优化Windows Vista
·只转两圈 加快Windows XP启动速度
精选专题

Linux 内核文件系统与设备操作流程分析

作者: 来源: 时间:2007-3-1 14:05:52

Linux 内核文件系统与设备操作流程分析(6)             ((!f->f_mapping->a_ops->direct_IO) &&
            (!f->f_mapping->a_ops->get_xip_page))) {
            fput(f);
            f = ERR_PTR(-EINVAL);
        }    }

    return f;

//
// 以下两个流程,只有失败时才会走到。释放 struct file 中
// 所有相关信息,并返回错误。
//
cleanup_all:
    fops_put(f->f_op);
    if (f->f_mode & FMODE_WRITE)
        put_write_access(inode);
    file_kill(f);
    f->f_dentry = NULL;
    f->f_vfsmnt = NULL;
cleanup_file:
    put_filp(f);
    dput(dentry);
    mntput(mnt);
    return ERR_PTR(error);
}


在上面详细分析中介绍的 struct file 中使用的 f_op 其实是 struct inode->i_fop
中的一个副本。写过设备驱动的人都知道,在使用 register_xxx 注册一个“字符”
或 “块” 设备驱动时,都要填充一个 struct file 结构以便与应用层交互。那么
这样就存在一个问题,大家都知道在 *nix 系统下文件与设备都是以文件形式存在的,
即都有 inode,而访问 file system 与 device driver 所使用的函数操作集
都是通过 struct inode 提供的,且都是一个 file_operations 函数集,那么系统
是如何区分所访问的是 file system 上的文件还是 device driver 呢?如果是
device driver 那么又是在什么地方初始化连接你所注册的回调函数呢?下面我们
以 ext3 文件系统为例,来看一下 ext3_read_inode() 函数的实现。至于这个函数
什么时候被调用,在哪里被调用的?以及下面注释中提到的 ext3 文件系统的 open
操作为什么为空操作等疑问会在后面章节中介绍,这里为了结合上下文,保持连贯
性,还是先讲一下这个函数。

void ext3_read_inode(struct inode * inode)
{
    struct ext3_iloc iloc;
    struct ext3_inode *raw_inode;
    struct ext3_inode_info *ei = EXT3_I(inode);
    struct buffer_head *bh;

1.Linux 内核文件系统与设备操作流程分析(1)
2.Linux 内核文件系统与设备操作流程分析(2)
3.Linux 内核文件系统与设备操作流程分析(3)
4.Linux 内核文件系统与设备操作流程分析(4)
5.Linux 内核文件系统与设备操作流程分析(5)
6.Linux 内核文件系统与设备操作流程分析(6)
7.Linux 内核文件系统与设备操作流程分析(7)
8.Linux 内核文件系统与设备操作流程分析(8)
9.Linux 内核文件系统与设备操作流程分析(9)
10.Linux 内核文件系统与设备操作流程分析(10)
11.Linux 内核文件系统与设备操作流程分析(11)
12.Linux 内核文件系统与设备操作流程分析(12)
13.Linux 内核文件系统与设备操作流程分析(13)
14.Linux 内核文件系统与设备操作流程分析(14)
15.Linux 内核文件系统与设备操作流程分析(15)
16.Linux 内核文件系统与设备操作流程分析(16)
17.Linux 内核文件系统与设备操作流程分析(17)
18.Linux 内核文件系统与设备操作流程分析(18)
19.Linux 内核文件系统与设备操作流程分析(19)
20.Linux 内核文件系统与设备操作流程分析(20)
21.Linux 内核文件系统与设备操作流程分析(21)
22.Linux 内核文件系统与设备操作流程分析(22)
23.Linux 内核文件系统与设备操作流程分析(23)
24.Linux 内核文件系统与设备操作流程分析(24)
25.Linux 内核文件系统与设备操作流程分析(25)
26.Linux 内核文件系统与设备操作流程分析(26)
27.Linux 内核文件系统与设备操作流程分析(27)
28.Linux 内核文件系统与设备操作流程分析(28)
29.Linux 内核文件系统与设备操作流程分析(29)
30.Linux 内核文件系统与设备操作流程分析(30)
31.Linux 内核文件系统与设备操作流程分析(31)
32.Linux 内核文件系统与设备操作流程分析(32)
33.Linux 内核文件系统与设备操作流程分析(33)
34.Linux 内核文件系统与设备操作流程分析(34)
共34页 9 7 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [348 :>

Linux 内核文件系统与设备操作流程分析 相关文章:
Linux 内核文件系统与设备操作流程分析 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com