summaryrefslogtreecommitdiff
path: root/source3/locking/locking.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2008-12-18 15:40:05 -0800
committerJeremy Allison <jra@samba.org>2008-12-18 15:40:05 -0800
commit4283ae489b6e227beba196e8a315a9727f03cc07 (patch)
tree7308561653b9e52eab8fc13181c0ad41ae2da208 /source3/locking/locking.c
parentf9bb8fbe832409893b17f2113d7b35b9ffe91540 (diff)
parentd031472227b44d040698e6dff52dc79028fde854 (diff)
downloadsamba-4283ae489b6e227beba196e8a315a9727f03cc07.tar.gz
samba-4283ae489b6e227beba196e8a315a9727f03cc07.tar.bz2
samba-4283ae489b6e227beba196e8a315a9727f03cc07.zip
Merge branch 'master' of ssh://jra@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;
}