Jef*_*eff 9 linux file-io nfs glibc
什么时候在Linux 2.6内核和NFSv3中确实open("fname", O_CREAT|O_EXCL)
有效?当前的规范open(2)
系统调用文档(http://www.kernel.org/doc/man-pages/online/pages/man2/open.2.html)说一切都很好:
- O_EXCL
- ...
On NFS, O_EXCL is only supported when using NFSv3 or later on kernel
2.6 or later. In NFS environments where O_EXCL support is not
provided, programs that rely on it for performing locking tasks will
contain a race condition. Portable programs that want to perform
atomic file locking using a lockfile, and need to avoid reliance on NFS
support for O_EXCL, can ...
Run Code Online (Sandbox Code Playgroud)
这看起来好像所有2.6内核都没问题,但是手册页面更改日志(ca late kernel 2.6.23)开始显示2.6.0上线四年后的有效性,并且网络充斥着董事会用户在去年内谴责这种用法或两个.我想在RHEL 5(2.6.18)系统上使用这个设置,但是当它真正变得安全时我无法确定.有没有人有明确的答案?
显然,NFS人声称任何来自NFSv3和Linux 2.6.5的东西都可以.
来自http://nfs.sourceforge.net/#faq_d10: