自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zhang_shuai_2011的专栏

生活只有一种英雄主义,那就是认识真相后依然热爱生活。

  • 博客(13)
  • 收藏
  • 关注

原创 VFS中dentry管理

Linux用数据结构dentry来描述fs中与某个文件索引节点相链接的一个目录项(可以是文件,也可以是目录)。   每个dentry对象都属于下列几种状态之一:   (1)未使用(unused)状态:该dentry对象的引用计数d_count的值为0,但其d_inode指针仍然指

2011-07-29 15:29:07 5010

原创 NFSD端write流程分析

早晨走路来实验室,一路上头上瀑布,脚下海浪,还不慎滑倒,摔了一身水,想起初中时候每次下雨,都从家里百米冲刺到学校北墙,窜上墙头,翻进学校,两相对比,不禁感慨:人都会变老,谁也逃不掉。言归正传,NFSD端write流程;resp的定义相比read多了len + stable 两个成

2011-07-29 10:39:06 1237

原创 NFSD端read流程介绍

今天中午美美的睡了一觉,借着突破readdir的基础,迅速看懂了NFSD端的read代码。想想之前看不懂时候,面对满屏幕的繁杂数据结构,完全失去了思考能力。分析代码之前,先总结一下,希望经过这次拖沓的一个月 读代码,以后面对稍稍复杂庞大的代码,能够迅速理出头绪。1.首先要从宏观理

2011-07-28 19:32:44 1530

原创 NFS中 readdir操作流程

入口函数nfs3d_proc_readdir(): 完成对resp中相关字段的处理:fhp,count,buff等然后调用nfsd_readdir(),函数返回后resp->count = resp->buff - argp->buff,这个说明了什么? nfsd_readdir

2011-07-28 09:19:31 3054

原创 NFS setattr操作错误处理机制

设想服务器端回复客户端的setattr操作的消息丢失,这时,客户端重发setattr的request。若设置了CHECK模式,服务器会检测request中的time和ctime,若不一致,则返回失败操作。

2011-07-19 10:15:22 758

原创 关于inode_operations的两个变量

rpc_ops 这个结构体中包含着类型为struct inode_optations 的两个变量:file_inode_ops 以及  dir_inode_ops,这两个变量中,对不同字段的函数指针赋值,也就是说函数指针指向不同的值,在nfs_fhget()这个函数中(这个函数完

2011-07-14 15:53:59 947

原创 文件删除与sillyrename还有孤儿节点

NFS文件系统的unlink操作,当目标节点的目录下引用计数大于0时,则采用sillyrename策略,最后一个打开文件的进程关闭文件时候,会检测sillyrename的标志位,若置位,则将其删除。×××××××××××××××××××××××××××××××××××上文是我11年7月刚进入实验室看NFSv3代码时候,做的笔记,现在回头看,理解的连皮毛都算不上,着实汗颜。最近看FUSE

2011-07-14 14:27:37 1812

原创 文件锁

本文的目的是想帮助读者理清 Linux 2.6中文件锁的概念以及 Linux 2.6 都提供了何种数据结构以及关键的系统调用来实现文件锁,从而可以帮助读者更好地使用文件锁来解决多个进程读取同一个文件的互斥问题。本文主要描述了 Linux 中各类文件锁的概念,使用场景,内核中描述文

2011-07-13 23:34:27 692

原创 dentry数据组织与相关操作

Linux用数据结构dentry来描述fs中与某个文件索引节点相链接的一个目录项(可以是文件,也可以是目录)。   每个dentry对象都属于下列几种状态之一:   (1)未使用(unused)状态:该dentry对象的引用计数d_count的值为0,但其d_inode指针仍然指

2011-07-12 16:57:54 1044

原创 denry相关的各种hash函数

d_hash(dentry,hash) 为散列函数 , 它将 dentry 地址和 hash 值相组合, 映射到 dentry_hashtable 表中 , 返回相应的散列链 ;在底层文件系统的i_op中也有一个同名的d_hash函数,这个函数仅用来计算目录项对应的散列值;d_r

2011-07-12 15:27:52 1033

原创 进程调度

在Linux系统中,进程是可被调度的实体。虽然当线程被发明出来之后,进程更多的是被当做资源的实体,而线程作为可被调度的执行单元被操作系统调度,但是,Linux因为历史等原因,使得它调度的实体仍然是进程。进程之间因为可以“并发”,所以他们之间的同步要通过某种方式的通信实现,这也就是

2011-07-12 09:58:53 727

原创 通过/PROC实现内核与用户通信

1. 前言 Linux内核空间与用户空间的通信可通过"/proc"目录的文件读写来实现,如果只是控制内核中的参数而不是传输较多数据的话,用“/proc”是很合适的。另外一种内核与用户空间通信方式方式是使用内核设备的读写或IOCTL来实现,以后再介绍。 2. /proc概述 /pr

2011-07-07 15:08:36 1660

原创 NFS文件创建模式

在NFS中文件创建有三种模式,UNCHECKED ,GUARDED,EXLUSIVEUNCHECKED,是不检测同目录下有没有同名或者同verifer的文件的模式。在V2中,为避免出现创建同名文件的错误,服务器端在执行create之前都会调用lookup进行判

2011-07-03 20:36:26 1083

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除