summaryrefslogtreecommitdiff
path: root/source3/locking
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2008-12-18 14:54:57 +0000
committerJelmer Vernooij <jelmer@samba.org>2008-12-18 14:54:57 +0000
commitd14c8604653d39dd25736279d34930ee7a3ae103 (patch)
tree626f700b9b42b798ed7459a5cba5cd27aca9753e /source3/locking
parent0c0b9c738f0fc1bf8aa64533a5e4e0635b84f58f (diff)
parentfc31f2c5269fd405be96b9a036baf35a60141ccf (diff)
downloadsamba-d14c8604653d39dd25736279d34930ee7a3ae103.tar.gz
samba-d14c8604653d39dd25736279d34930ee7a3ae103.tar.bz2
samba-d14c8604653d39dd25736279d34930ee7a3ae103.zip
Merge branch 'master' of ssh://git.samba.org/data/git/samba into pyregistry
Diffstat (limited to 'source3/locking')
-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;
}