diff options
author | Christian Ambach <ambi@samba.org> | 2012-08-07 18:42:39 +0200 |
---|---|---|
committer | Christian Ambach <ambi@samba.org> | 2012-08-16 18:05:29 +0200 |
commit | 6e3901194bbd74e2f5e7a0f0928c52da92e729c1 (patch) | |
tree | 78ce6a2bc0f46e5113de397f15fdf504c7352e8d /source3/modules | |
parent | a8b583089bfa2d4f7f9f4d0aba0f0640ef1ad959 (diff) | |
download | samba-6e3901194bbd74e2f5e7a0f0928c52da92e729c1.tar.gz samba-6e3901194bbd74e2f5e7a0f0928c52da92e729c1.tar.bz2 samba-6e3901194bbd74e2f5e7a0f0928c52da92e729c1.zip |
s3:vfs_gpfs: make sure parameters are set correctly for leases
gpfs:leases requires kernel oplocks = yes and level2 oplocks = no
to work properly
make sure those are set correctly for a share
Diffstat (limited to 'source3/modules')
-rw-r--r-- | source3/modules/vfs_gpfs.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/source3/modules/vfs_gpfs.c b/source3/modules/vfs_gpfs.c index 874d00d048..a988c09164 100644 --- a/source3/modules/vfs_gpfs.c +++ b/source3/modules/vfs_gpfs.c @@ -1505,6 +1505,31 @@ static int vfs_gpfs_connect(struct vfs_handle_struct *handle, NULL, struct gpfs_config_data, return -1); + if (config->leases) { + /* + * GPFS lease code is based on kernel oplock code + * so make sure it is turned on + */ + if (!lp_kernel_oplocks(SNUM(handle->conn))) { + DEBUG(5, ("Enabling kernel oplocks for " + "gpfs:leases to work\n")); + lp_do_parameter(SNUM(handle->conn), "kernel oplocks", + "true"); + } + + /* + * as the kernel does not properly support Level II oplocks + * and GPFS leases code is based on kernel infrastructure, we + * need to turn off Level II oplocks if gpfs:leases is enabled + */ + if (lp_level2_oplocks(SNUM(handle->conn))) { + DEBUG(5, ("gpfs:leases are enabled, disabling " + "Level II oplocks\n")); + lp_do_parameter(SNUM(handle->conn), "level2 oplocks", + "false"); + } + } + return 0; } |