yjh777 发表于 2016-03-18 16:27

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)

yjh777 发表于 2016-03-18 16:49

找到一个lwn的记录: https://lwn.net/Articles/12722/

    但都是E文的,有中文的资料吗?

nswcfd 发表于 2016-03-18 17:33

nd在记录路径解析过程中的中间状态吧?

yjh777 发表于 2016-03-18 17:49

本帖最后由 yjh777 于 2016-03-18 17:51 编辑

nswcfd 发表于 2016-03-18 17:33 static/image/common/back.gif
nd在记录路径解析过程中的中间状态吧?

nd 结构本身就是查找的上下文信息 记录;
    看E文的意思是好像为了集群文件系统效率优化,但具体的过程细节是怎样节省开销的还不太清除

    比如说,增加这个patch之前,是怎么处理的
                     增加之后有是怎么处理的,节省了什么步骤,,

nswcfd 发表于 2016-03-18 18:18

看了下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的实现。

nswcfd 发表于 2016-03-18 18:24

好像nfs的代码里有一些intent的用法,不太了解具体的业务逻辑。(fs/nfs/dir.c)
页: [1]
查看完整版本: struct nameidata 里面的struct open_intent 做什么用的?