summaryrefslogtreecommitdiff
path: root/source4/ntvfs/posix/pvfs_lock.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2008-02-25 09:51:58 +0100
committerStefan Metzmacher <metze@samba.org>2008-02-26 09:32:57 +0100
commit4ee328d7d26f1a86559993f6533b8a1e12a4c6a1 (patch)
tree85b494bad8851ee9bd0d679766e30e957e857dbb /source4/ntvfs/posix/pvfs_lock.c
parentbe1ba5b63164e7dab4bf067bc1aac4ed9cece2bc (diff)
downloadsamba-4ee328d7d26f1a86559993f6533b8a1e12a4c6a1.tar.gz
samba-4ee328d7d26f1a86559993f6533b8a1e12a4c6a1.tar.bz2
samba-4ee328d7d26f1a86559993f6533b8a1e12a4c6a1.zip
pvfs: handle oplock releases in its own function pvfs_oplock_release()
metze (This used to be commit 27ec7bfc8b7f46c97e6878caf5cd694c517ce053)
Diffstat (limited to 'source4/ntvfs/posix/pvfs_lock.c')
-rw-r--r--source4/ntvfs/posix/pvfs_lock.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/source4/ntvfs/posix/pvfs_lock.c b/source4/ntvfs/posix/pvfs_lock.c
index df85b2b775..0796286b7e 100644
--- a/source4/ntvfs/posix/pvfs_lock.c
+++ b/source4/ntvfs/posix/pvfs_lock.c
@@ -294,6 +294,10 @@ NTSTATUS pvfs_lock(struct ntvfs_module_context *ntvfs,
return ntvfs_map_lock(ntvfs, req, lck);
}
+ if (lck->lockx.in.mode & LOCKING_ANDX_OPLOCK_RELEASE) {
+ return pvfs_oplock_release(ntvfs, req, lck);
+ }
+
f = pvfs_find_fd(pvfs, req, lck->lockx.in.file.ntvfs);
if (!f) {
return NT_STATUS_INVALID_HANDLE;
@@ -338,13 +342,6 @@ NTSTATUS pvfs_lock(struct ntvfs_module_context *ntvfs,
return NT_STATUS_DOS(ERRDOS, ERRnoatomiclocks);
}
- if (lck->lockx.in.mode & LOCKING_ANDX_OPLOCK_RELEASE) {
- DEBUG(0,("received unexpected oplock break\n"));
- talloc_free(pending);
- return NT_STATUS_NOT_IMPLEMENTED;
- }
-
-
/* the unlocks happen first */
locks = lck->lockx.in.locks;