summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2012-09-10 11:25:03 +0200
committerKarolin Seeger <kseeger@samba.org>2012-09-21 09:44:43 +0200
commit3709ac83a0671fc8ac546031f4992165a886de0d (patch)
tree983a90a40badd0e62f3be7a3d3eee177b10cc52f
parentf4826046d01bf702044a1664400989a631acf65f (diff)
downloadsamba-3709ac83a0671fc8ac546031f4992165a886de0d.tar.gz
s3: delete requests are not special
The only difference between batch and exclusive oplocks is the time of the check: Batch is checked before the share mode check, exclusive after. Signed-off-by: Jeremy Allison <jra@samba.org> Fix bug #9150 - Valid open requests can cause smbd assert due to incorrect oplock handling on delete requests. (cherry picked from commit b20ca77e2a9d111eb2e77d0b804fe7505b07e418)
-rw-r--r--source3/smbd/open.c13
1 files changed, 2 insertions, 11 deletions
diff --git a/source3/smbd/open.c b/source3/smbd/open.c
index dfa45ef739a..843bb2b6a8f 100644
--- a/source3/smbd/open.c
+++ b/source3/smbd/open.c
@@ -894,11 +894,6 @@ static NTSTATUS open_mode_check(connection_struct *conn,
return NT_STATUS_OK;
}
-static bool is_delete_request(files_struct *fsp) {
- return ((fsp->access_mask == DELETE_ACCESS) &&
- (fsp->oplock_type == NO_OPLOCK));
-}
-
/*
* Send a break message to the oplock holder and delay the open for
* our client.
@@ -1002,13 +997,9 @@ static bool delay_for_oplocks(struct share_mode_lock *lck,
}
if (exclusive != NULL) { /* Found an exclusive oplock */
- bool delay_it = is_delete_request(fsp) ?
- BATCH_OPLOCK_TYPE(exclusive->op_type) : true;
SMB_ASSERT(!have_level2);
- if (delay_it) {
- send_break_message(fsp, exclusive, mid, oplock_request);
- return true;
- }
+ send_break_message(fsp, exclusive, mid, oplock_request);
+ return true;
}
/*