有没有办法在非只读文件系统中安全地使用非零超时?我似乎找不到一个。几个反例:
示例一(非零负输入超时):
- 应用程序调用 stat() 并获得 ENOENT;
- 调用 create();
- 调用 stat(),期待成功,但由于负输入超时而获得 ENOENT,因此得出 FS 损坏/不一致/等结论。
示例二(非零 attr 超时):
- 应用程序调用 utimes();
- 调用 stat(),但获取过时的值并得出 FS 损坏/不一致/等结论。
我无法为正输入超时提出反例 - 似乎即使 lookup() 返回一些陈旧的 inode,文件系统仍然可以为稍后的 getattr() 调用返回 ENOENT。
但是上面的两个例子呢?