UNIX/NFS process or PC-NFS application can open the same file for write access without an Oplock Break being sent to the client, resulting in unacceptable risk of data corruption. Even a UNIX/NFS process that adheres to the advisory locking protocol will not send an oplock break. Disabling Oplocks removes the risk of this particular data corruption, but also removes the performance benefit that Oplock file caching provides.

Currently, CIFS/9000 does not provide interoperability between UNIX/NFS, PC-NFS and Windows clients for oplocks. However, CIFS/9000 has a planned enhancement to provide this interoperability. This enhancement will allow CIFS/9000 to send an oplock break to a Windows client when a UNIX/NFS process or PC-NFS application attempts to access a file, even if the process or application does not participate in the advisory locking protocol. This file locking interoperability issue is the focus of many claims by HP’s competitors. See section 8 for more details.

Kernel oplocks is a Samba smb.conf parameter that notifies Samba if the UNIX kernel has the capability to send a Windows client an Oplock Break if a UNIX process is attempting to open the file that is cached. This parameter addresses sharing files between UNIX and Windows with Oplocks enabled on the a Samba server: the UNIX process can open the file that is Oplocked (cached) by the Windows client and the smbd process will not send an Oplock break, which exposes the file to the risk of data corruption. If the UNIX kernel has the ability to send an Oplock break, then the kernel oplocks parameter enables Samba to send the Oplock break. Kernel oplocks are enabled on a per -server basis in the smb.conf file. However, CIFS/9000 currently does not support kernel oplocks, so the parameter has no effect:

[global]

kernel oplocks = yes

The default is “no”. The planned enhancement for CIFS/9000 Oplocks will likely utilize this parameter.

Veto oplocks is a smb.conf parameter that identifies specific files for which Oplocks are disabled. When a Windows client opens a file that has been configured for veto oplocks, the client will not be granted the oplock, and all operations will be executed on the original file on disk instead of a client-cached file copy. By explicitly identifying files that are shared with UNIX processes, and disabling Oplocks for those files, the server-wide Oplock configuration can be enabled to allow Windows clients to utilize the performance benefit of file caching without the risk of data corruption. Veto Oplocks can be enabled on a per -share basis, or globally for the entire server, in the smb.conf file:

[global]

veto oplock files = /filename.htm/*.txt/

[share_name]

veto oplock files = /*.exe/filename.ext/

15

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