summaryrefslogtreecommitdiff
path: root/source3/smbd/oplock.c
diff options
context:
space:
mode:
authorPavel Shilovsky <piastry@etersoft.ru>2011-01-31 14:52:11 -0800
committerJeremy Allison <jra@samba.org>2011-02-01 00:39:56 +0100
commit6696fd1c1e94a6b830fe8d1191b85da97bfb10c1 (patch)
tree43840fb06397cc3980d1039ea79e2e64b39c7bbf /source3/smbd/oplock.c
parente18b8c0730ba800ab2864c65c6cd46aff4848585 (diff)
downloadsamba-6696fd1c1e94a6b830fe8d1191b85da97bfb10c1.tar.gz
samba-6696fd1c1e94a6b830fe8d1191b85da97bfb10c1.tar.bz2
samba-6696fd1c1e94a6b830fe8d1191b85da97bfb10c1.zip
Ensure we send the direct levelII oplock break to the correct fid.
Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Tue Feb 1 00:39:56 CET 2011 on sn-devel-104
Diffstat (limited to 'source3/smbd/oplock.c')
-rw-r--r--source3/smbd/oplock.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/source3/smbd/oplock.c b/source3/smbd/oplock.c
index 31cedc415e..c3c41d1c33 100644
--- a/source3/smbd/oplock.c
+++ b/source3/smbd/oplock.c
@@ -839,8 +839,17 @@ static void contend_level2_oplocks_begin_default(files_struct *fsp,
*/
if (procid_is_me(&share_entry->pid)) {
+ struct files_struct *cur_fsp =
+ initial_break_processing(fsp->conn->sconn,
+ share_entry->id,
+ share_entry->share_file_id);
wait_before_sending_break();
- break_level2_to_none_async(fsp);
+ if (cur_fsp != NULL) {
+ break_level2_to_none_async(cur_fsp);
+ } else {
+ DEBUG(3, ("release_level_2_oplocks_on_change: "
+ "Did not find fsp, ignoring\n"));
+ }
} else {
messaging_send_buf(fsp->conn->sconn->msg_ctx,
share_entry->pid,