(mixed-mode access) does not remove the element of risk from data corruption because the locking interoperability is not comprehensive system-wide5.

Byte Range locking is implemented for both Windows and UNIX access with UNIX advisory byte range locking via the fcntl function. Since UNIX byte range locking is advisory, a UNIX process must be properly coded to participate in the locking protocol. The CIFS/9000 smbd process actually calls the UNIX fcntl function to implement Windows byte range locking. When both processes correctly interact, byte range locking is fully effective in a mixed Windows-UNIX access environment. Byte range locking should remain enabled.

Opportunistic (Oplocks) locking should be disabled for any share that has mixed Windows and UNIX client access. A UNIX process has no concept of an oplock, therefore cannot send an oplock break when a Windows client has cached a copy of a file. A UNIX process could open and write to a disk file that has been modified in the Windows client cache, which results in an unacceptable risk of data corruption. Oplocks should be disabled in a mixed Windows-UNIX access environment.

Mandatory, Byte Range, and Opportunistic locking are all enabled by default. Disable oplocks for Windows-UNIX share file access explicitly on a per -share basis by editing the smb.conf file:

[share_name]

share modes = yes <default config – shown for example only> locking = yes <default config – shown for example only> oplocks = no

veto oplocks can be used to specify particular files on a share that will encounter mixed Windows and UNIX access, and prevent the CIFS/9000 server from granting oplock requests upon those files. By enabling veto oplocks for mixed-mode shared access, Windows clients can continue to utilize oplocks for Windows-only shared access and gain the performance benefit of file caching.

[share_name]

share modes = yes <default config – shown for example only> locking = yes <default config – shown for example only> oplocks = yes

veto oplock files = /filename.ext/

5See Appendix B.5

21

Page 21
Image 21
HP UX Common Internet File System (CIFS) Client/Server Software manual