diff options
-rw-r--r-- | source3/locking/locking.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/source3/locking/locking.c b/source3/locking/locking.c index 28f1aceb49..f5892ddf0d 100644 --- a/source3/locking/locking.c +++ b/source3/locking/locking.c @@ -1376,12 +1376,15 @@ bool remove_share_oplock(struct share_mode_lock *lck, files_struct *fsp) return False; } - if (EXCLUSIVE_OPLOCK_TYPE(fsp->oplock_type)) { + if (EXCLUSIVE_OPLOCK_TYPE(e->op_type)) { /* * Going from exclusive or batch, * we always go through FAKE_LEVEL_II * first. */ + if (!EXCLUSIVE_OPLOCK_TYPE(fsp->oplock_type)) { + smb_panic("remove_share_oplock: logic error"); + } e->op_type = FAKE_LEVEL_II_OPLOCK; } else { e->op_type = NO_OPLOCK; |