When в ядре 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 в порядке, но страница справки man changelog (может содержать последнее ядро 2.6.23) начинает указывать срок действия через четыре года после запуска 2.6.0, и в Интернете полно пользователей досок, осуждающих это использование в течение последнего года или двух. Я хотел бы использовать эту настройку в системах RHEL 5 (2.6.18), но я не мог определить, когда она действительно стала безопасной. У кого-нибудь есть точный ответ?
Судя по всему, ребята из NFS утверждают, что все в порядке, начиная с NFSv3 и Linux 2.6.5 .
Из http://nfs.sourceforge.net/#faq_d10 :