diff options
author | Volker Lendecke <vlendec@samba.org> | 2001-09-07 15:35:26 +0000 |
---|---|---|
committer | Volker Lendecke <vlendec@samba.org> | 2001-09-07 15:35:26 +0000 |
commit | 22b51232c0df7eacfc02b102432d1e8ad8d00f74 (patch) | |
tree | 3304045de0ebcb94819abbe5021b1639544c4a47 | |
parent | 5573a1c7394362f5e46c58b8cfaf6bf7a080c391 (diff) | |
download | samba-22b51232c0df7eacfc02b102432d1e8ad8d00f74.tar.gz samba-22b51232c0df7eacfc02b102432d1e8ad8d00f74.tar.bz2 samba-22b51232c0df7eacfc02b102432d1e8ad8d00f74.zip |
Fixed paragraph about byte range locking. Jerry, could you make a pdf of this?
Thanks,
Volker
(This used to be commit 3811b6a9eba8c5567b4df01c86cc4fe33b0a8079)
-rw-r--r-- | docs/docbook/projdoc/UNIX_INSTALL.sgml | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/docs/docbook/projdoc/UNIX_INSTALL.sgml b/docs/docbook/projdoc/UNIX_INSTALL.sgml index 41eb7a478c..0e4d8a5d03 100644 --- a/docs/docbook/projdoc/UNIX_INSTALL.sgml +++ b/docs/docbook/projdoc/UNIX_INSTALL.sgml @@ -379,21 +379,26 @@ The second is the "deny modes" that are specified when a file is open.</para> - <para>Samba supports "record locking" using the fcntl() unix system - call. This is often implemented using rpc calls to a rpc.lockd process - running on the system that owns the filesystem. Unfortunately many - rpc.lockd implementations are very buggy, particularly when made to - talk to versions from other vendors. It is not uncommon for the - rpc.lockd to crash.</para> - - <para>There is also a problem translating the 32 bit lock - requests generated by PC clients to 31 bit requests supported - by most unixes. Unfortunately many PC applications (typically - OLE2 applications) use byte ranges with the top bit set - as semaphore sets. Samba attempts translation to support - these types of applications, and the translation has proved - to be quite successful.</para> - + <para>Record locking semantics under Unix is very + different from record locking under Windows. Versions + of Samba before 2.2 have tried to use the native + fcntl() unix system call to implement proper record + locking between different Samba clients. This can not + be fully correct due to several reasons. The simplest + is the fact that a Windows client is allowed to lock a + byte range up to 2^32 or 2^64, depending on the client + OS. The unix locking only supports byte ranges up to + 2^31. So it is not possible to correctly satisfy a + lock request above 2^31. There are many more + differences, too many to be listed here.</para> + + <para>Samba 2.2 and above implements record locking + completely independent of the underlying unix + system. If a byte range lock that the client requests + happens to fall into the range 0-2^31, Samba hands + this request down to the Unix system. All other locks + can not be seen by unix anyway.</para> + <para>Strictly a SMB server should check for locks before every read and write call on a file. Unfortunately with the way fcntl() works this can be slow and may overstress the |