NFS客户端流程理解
来源:互联网 发布:图片切换js 编辑:程序博客网 时间:2024/04/28 02:08
系统调用-> vfs_readir->inode->i_fop()(这是在inode初始化时候,填入的钩子函数,一般会填成nfs的函数nfs_readdir)
nfs_readdir()先在缓存中查找,如没找到,则发送一个RPC操作号给服务器,服务器接收到操作号。调用对应的PROCEDURE,然后调用VFS的代码。
const struct nfs_rpc_ops nfs_v2_clientops = {
.version = 2, /* protocol version */
.dentry_ops = &nfs_dentry_operations,
.dir_inode_ops = &nfs_dir_inode_operations,
.file_inode_ops = &nfs_file_inode_operations,
.file_ops = &nfs_file_operations,
.getroot = nfs_proc_get_root,
.getattr = nfs_proc_getattr,
.setattr = nfs_proc_setattr,
.lookup = nfs_proc_lookup,
.access = NULL, /* access */
.readlink = nfs_proc_readlink,
.create = nfs_proc_create,
.remove = nfs_proc_remove,
.unlink_setup = nfs_proc_unlink_setup,
.unlink_done = nfs_proc_unlink_done,
.rename = nfs_proc_rename,
.link = nfs_proc_link,
.symlink = nfs_proc_symlink,
.mkdir = nfs_proc_mkdir,
.rmdir = nfs_proc_rmdir,
.readdir = nfs_proc_readdir,
.mknod = nfs_proc_mknod,
.statfs = nfs_proc_statfs,
.fsinfo = nfs_proc_fsinfo,
.pathconf = nfs_proc_pathconf,
.decode_dirent = nfs_decode_dirent,
.read_setup = nfs_proc_read_setup,
.read_done = nfs_read_done,
.write_setup = nfs_proc_write_setup,
.write_done = nfs_write_done,
.commit_setup = nfs_proc_commit_setup,
.lock = nfs_proc_lock,
.lock_check_bounds = nfs_lock_check_bounds,
.close_context = nfs_close_context,
};这个结构中注册了大量的钩子函数,上面的四个结构体,是用来注册到inode file 等结构中的,下面的钩子函数,是用来在run_rpc_task()用的。
关键在于,inode初始化的时候注册哪个钩子函数。
- NFS客户端流程理解
- NFS客户端、服务器协商读写粒度(rsize、wsize)流程
- NFS客户端的数据结构
- 简单安装NFS流程
- 配置NFS服务器和NFS客户端
- HP_UX nfs客户端强制umount
- NFS客户端自动挂载
- Linux NFS 服务器和客户端
- nfs客户端执行报错
- nfs服务器和客户端配置
- NFS中 readdir操作流程
- 选择nfs还是samba?(客户端均为linux则选nfs)
- 网络编程 客户端 服务端 函数 流程 图示 来自深入理解计算机系统一书 P704
- HDFS 客户端 读取和写入 HDFS中的数据流程的简单理解
- 使用IOzone分析NFS的客户端性能
- Linux实战之NFS服务器客户端配置
- Windows客户端访问Linu服务器NFS
- Linux实战之NFS服务器客户端配置
- pipe row的用法
- 我有一个梦想——写Linux专题书
- 《C语言的科学与艺术》课后习题答案第四章(部分)
- 什么是中断?
- Hibernate
- NFS客户端流程理解
- 你会选择哪个同事合作?
- 《C语言的科学与艺术》课后习题答案第六章(部分)
- forall oracle 10g 高级特性
- android3d效果
- javascript中的编码与解码
- 《C语言的科学与艺术》课后习题答案第八章(部分)
- 虚拟基类的初始化
- windows 下搭建android NDK开发环境