summaryrefslogtreecommitdiff
path: root/source3/locking/locking.c
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2008-12-19 21:47:45 +0100
committerJelmer Vernooij <jelmer@samba.org>2008-12-19 21:47:45 +0100
commit5076c64d43c68a028ac944c336715b4cb277365f (patch)
treee88fc16979b75b5b30377e84b76ebb1b87e01591 /source3/locking/locking.c
parent6998ef4fe021ebf40f63c2191d3259888a8ad7f4 (diff)
parent13eefa7c435cb5ac656f662c78260a82caf43180 (diff)
downloadsamba-5076c64d43c68a028ac944c336715b4cb277365f.tar.gz
samba-5076c64d43c68a028ac944c336715b4cb277365f.tar.bz2
samba-5076c64d43c68a028ac944c336715b4cb277365f.zip
Merge branch 'master' of ssh://git.samba.org/data/git/samba
Diffstat (limited to 'source3/locking/locking.c')
-rw-r--r--source3/locking/locking.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/source3/locking/locking.c b/source3/locking/locking.c
index a70f9d20fe..b342fa9b1e 100644
--- a/source3/locking/locking.c
+++ b/source3/locking/locking.c
@@ -1186,7 +1186,16 @@ bool remove_share_oplock(struct share_mode_lock *lck, files_struct *fsp)
}
e->op_mid = 0;
- e->op_type = NO_OPLOCK;
+ if (EXCLUSIVE_OPLOCK_TYPE(fsp->oplock_type)) {
+ /*
+ * Going from exclusive or batch,
+ * we always go through FAKE_LEVEL_II
+ * first.
+ */
+ e->op_type = FAKE_LEVEL_II_OPLOCK;
+ } else {
+ e->op_type = NO_OPLOCK;
+ }
lck->modified = True;
return True;
}