Есть ли способ безопасно использовать ненулевые тайм-ауты в файловых системах без чтения? Кажется, я не могу найти его. Пара встречных примеров:Как использовать entry_timeout и attr_timeout в низкоуровневом API FUSE/OSXFUSE?
Пример Один (ненулевой отрицательной тайм-аута входа):
- приложение вызывает стат() и получает ENOENT;
- вызывает create();
- вызывает stat(), ожидая успеха, но вместо этого получает ENOENT из-за отрицательного таймаута входа, поэтому он завершает, что FS сломан/несогласован/etc.
Пример второй (ненулевой атр тайм-аут):
- Приложение вызывает utimes();
- вызывает stat(), но получает устаревшие значения и завершает, что FS сломан/несогласован/etc.
Я не могу придумать контрпример для положительного тайм-аута входа - кажется, что даже если поиск() возвращает некоторый затхлый инод, файловая система все еще может вернуться ENOENT для последующего GetAttr() вызова.
Но как насчет вышеуказанных 2 примеров?