struct nameidata 里面的struct open_intent 做什么用的?
RT最初nameidata里面没有这个成员,引入是的目的是什么?
(怎么网上找不到 lxr 2.5 2.6 的内核了,lxr.oss.org.cn 无法访问,lxr.free-electrons.com只有2.4 3.8 .. 4.x) 找到一个lwn的记录: https://lwn.net/Articles/12722/
但都是E文的,有中文的资料吗? nd在记录路径解析过程中的中间状态吧? 本帖最后由 yjh777 于 2016-03-18 17:51 编辑
nswcfd 发表于 2016-03-18 17:33 static/image/common/back.gif
nd在记录路径解析过程中的中间状态吧?
nd 结构本身就是查找的上下文信息 记录;
看E文的意思是好像为了集群文件系统效率优化,但具体的过程细节是怎样节省开销的还不太清除
比如说,增加这个patch之前,是怎么处理的
增加之后有是怎么处理的,节省了什么步骤,, 看了下lwn的文章,揣测一下作者的意图:
create/open/link/unlink/rename等都有一个路径参数,
之前的做法是【无差别】的遍历路径(主要是调用fs的lookup/revalidate接口),然后再执行具体的操作。
增加intent之后,在遍历的过程中,各个fs的lookup/reavalid接口是不是【有机会】可以更早的返回结果?比如做更多的权限检查什么的?
【give the lookup call sufficient information about the "intent" of the lookup.】
当然,具体inent是怎么用的,还得看各个fs的实现。 好像nfs的代码里有一些intent的用法,不太了解具体的业务逻辑。(fs/nfs/dir.c)
页:
[1]