有没有办法在非只读文件系统中安全地使用非零超时?我好像找不到一个。几个反例:
示例一(非零否定录入超时):
示例二(非零attr超时):
我无法想出一个正向输入超时的反例 - 似乎即使lookup()返回一些陈旧的inode,文件系统仍然可以返回ENOENT以用于稍后的getattr()调用。
但是上面两个例子呢?
答案 0 :(得分:3)
仅供参考,同一问题已发布在FUSE mailing list上。
以下是关于非零超时工作原因的answer from Kyle Lippincott:
如果create()通过内核,它会使负数无效 进入超时。如果创建发生在外部,则超时 仍然坚持。
当非零超时成为问题时,请引用Goswin von Brederlow:
如果实现基于磁盘的文件系统,缓存只能正常工作, 一个只有熔丝过程可以改变元数据和所有访问的一个 只能通过保险丝。任何可以改变的覆盖文件系统 没有通过保险丝的底层文件系统可能会遇到 不一致。
所以,如果你是构建一个网络文件系统,允许多个主机更改数据,您可能会遇到非零超时问题。