当在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 ...
这看起来好像所有的2.6内核都可以,但是2.6.0版本的手册页更新日志 (ca late kernel 2.6.23)开始显示有效性,并且在上一年内networking上充斥着用户诟病这一使用的网页或两个。 我想在RHEL 5(2.6.18)系统上使用这个设置,但是当它真的变得安全的时候,我不能确定它。 有没有人有一个明确的答案?
显然,NFS家伙声称NFSv3和Linux 2.6.5上的任何东西都可以。
从http://nfs.sourceforge.net/#faq_d10 :