diff options
author | Dave Richards <dave.richards@isilon.com> | 2009-03-13 14:15:28 -0700 |
---|---|---|
committer | Tim Prouty <tprouty@samba.org> | 2009-03-13 14:16:55 -0700 |
commit | 1fcc11ff25f1c3e7586b13b24e5d0eec4ccfaedc (patch) | |
tree | 48e52776085f9db96fce7e62f695aef5c6d774da /source3/modules/vfs_default.c | |
parent | 1355dc2fd3a10c54fc3534409b78972d59d59b30 (diff) | |
download | samba-1fcc11ff25f1c3e7586b13b24e5d0eec4ccfaedc.tar.gz samba-1fcc11ff25f1c3e7586b13b24e5d0eec4ccfaedc.tar.bz2 samba-1fcc11ff25f1c3e7586b13b24e5d0eec4ccfaedc.zip |
s3: Add strict lock/unlock calls to the vfs layer to replace is_locked
Diffstat (limited to 'source3/modules/vfs_default.c')
-rw-r--r-- | source3/modules/vfs_default.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/source3/modules/vfs_default.c b/source3/modules/vfs_default.c index 7384268dae..a4973df299 100644 --- a/source3/modules/vfs_default.c +++ b/source3/modules/vfs_default.c @@ -1157,6 +1157,26 @@ static bool vfswrap_brl_cancel_windows(struct vfs_handle_struct *handle, return brl_lock_cancel_default(br_lck, plock); } +static bool vfswrap_strict_lock(struct vfs_handle_struct *handle, + files_struct *fsp, + struct lock_struct *plock) +{ + SMB_ASSERT(plock->lock_type == READ_LOCK || + plock->lock_type == WRITE_LOCK); + + return strict_lock_default(fsp, plock); +} + +static void vfswrap_strict_unlock(struct vfs_handle_struct *handle, + files_struct *fsp, + struct lock_struct *plock) +{ + SMB_ASSERT(plock->lock_type == READ_LOCK || + plock->lock_type == WRITE_LOCK); + + return strict_unlock_default(fsp, plock); +} + /* NT ACL operations. */ static NTSTATUS vfswrap_fget_nt_acl(vfs_handle_struct *handle, @@ -1592,6 +1612,10 @@ static vfs_op_tuple vfs_default_ops[] = { SMB_VFS_LAYER_OPAQUE}, {SMB_VFS_OP(vfswrap_brl_cancel_windows),SMB_VFS_OP_BRL_CANCEL_WINDOWS, SMB_VFS_LAYER_OPAQUE}, + {SMB_VFS_OP(vfswrap_strict_lock), SMB_VFS_OP_STRICT_LOCK, + SMB_VFS_LAYER_OPAQUE}, + {SMB_VFS_OP(vfswrap_strict_unlock), SMB_VFS_OP_STRICT_UNLOCK, + SMB_VFS_LAYER_OPAQUE}, /* NT ACL operations. */ |