summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2012-09-20 16:16:03 +0200
committerKarolin Seeger <kseeger@samba.org>2012-09-28 09:23:08 +0200
commit829d9dc5bf45853756c7c1a61870764e5be61fc1 (patch)
treee7bb613887a69f1221e7b98576fae69b04e4c372
parent493dec1a89908cb569df4e76c576c66e80c0c8d2 (diff)
downloadsamba-829d9dc5bf45853756c7c1a61870764e5be61fc1.tar.gz
s3:smb2_lock: let smbd_smb2_create_cancel() trigger NT_STATUS_CANCELED
Instead of violating the tevent_req layers. metze (cherry picked from commit 603f9bfa4cf7910e1c1cae1a8d0741a6d0874baa) Signed-off-by: Stefan Metzmacher <metze@samba.org>
-rw-r--r--source3/smbd/smb2_create.c16
1 files changed, 2 insertions, 14 deletions
diff --git a/source3/smbd/smb2_create.c b/source3/smbd/smb2_create.c
index 331ca49b1ba..70ef3246616 100644
--- a/source3/smbd/smb2_create.c
+++ b/source3/smbd/smb2_create.c
@@ -284,19 +284,6 @@ static void smbd_smb2_request_create_done(struct tevent_req *tsubreq)
NTSTATUS status;
NTSTATUS error; /* transport error */
- if (smb2req->cancelled) {
- uint64_t mid = get_mid_from_smb2req(smb2req);
- DEBUG(10,("smbd_smb2_request_create_done: cancelled mid %llu\n",
- (unsigned long long)mid ));
- error = smbd_smb2_request_error(smb2req, NT_STATUS_CANCELLED);
- if (!NT_STATUS_IS_OK(error)) {
- smbd_server_connection_terminate(smb2req->sconn,
- nt_errstr(error));
- return;
- }
- return;
- }
-
status = smbd_smb2_create_recv(tsubreq,
smb2req,
&out_oplock_level,
@@ -1426,7 +1413,8 @@ static bool smbd_smb2_create_cancel(struct tevent_req *req)
remove_deferred_open_message_smb2_internal(smb2req, mid);
smb2req->cancelled = true;
- tevent_req_done(req);
+ tevent_req_defer_callback(req, smb2req->sconn->ev_ctx);
+ tevent_req_nterror(req, NT_STATUS_CANCELLED);
return true;
}