summaryrefslogtreecommitdiff
path: root/source3/smbd/globals.h
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2010-04-22 23:52:19 -0700
committerJeremy Allison <jra@samba.org>2010-04-22 23:52:19 -0700
commit8f67f873ace91964da066c421986e260aceba75b (patch)
tree21776965085b9926a28ff5ed41ef147176668386 /source3/smbd/globals.h
parent9cd712d1bc1ac5140597e86b5c634d2c820d86de (diff)
downloadsamba-8f67f873ace91964da066c421986e260aceba75b.tar.gz
samba-8f67f873ace91964da066c421986e260aceba75b.tar.bz2
samba-8f67f873ace91964da066c421986e260aceba75b.zip
Make deferred opens (NT_STATUS_SHARING_VIOLATION) work over SMB2.
Makes SMB2Create call re-entrant internally. Now this infrastructure is in place, oplocks will follow shortly. Tested with Win7 client and with W2K8R2. Jeremy.
Diffstat (limited to 'source3/smbd/globals.h')
-rw-r--r--source3/smbd/globals.h15
1 files changed, 10 insertions, 5 deletions
diff --git a/source3/smbd/globals.h b/source3/smbd/globals.h
index 951d3522f7..a86f0e9bc2 100644
--- a/source3/smbd/globals.h
+++ b/source3/smbd/globals.h
@@ -318,6 +318,10 @@ NTSTATUS smbd_smb2_request_process_notify(struct smbd_smb2_request *req);
NTSTATUS smbd_smb2_request_process_getinfo(struct smbd_smb2_request *req);
NTSTATUS smbd_smb2_request_process_setinfo(struct smbd_smb2_request *req);
NTSTATUS smbd_smb2_request_process_break(struct smbd_smb2_request *req);
+NTSTATUS smbd_smb2_request_dispatch(struct smbd_smb2_request *req);
+void smbd_smb2_request_dispatch_immediate(struct tevent_context *ctx,
+ struct tevent_immediate *im,
+ void *private_data);
/* SMB1 -> SMB2 glue. */
void send_break_message_smb2(files_struct *fsp, uint8_t level);
@@ -332,13 +336,14 @@ bool push_blocking_lock_request_smb2( struct byte_range_lock *br_lck,
uint64_t offset,
uint64_t count,
uint32_t blocking_pid);
-void remove_deferred_open_message_smb2(uint64_t mid);
-void schedule_deferred_open_message_smb2(uint64_t mid);
-bool open_was_deferred_smb2(uint64_t mid);
-bool get_deferred_open_message_state_smb2(uint64_t mid,
+/* From smbd/smb2_create.c */
+bool get_deferred_open_message_state_smb2(struct smbd_smb2_request *smb2req,
struct timeval *p_request_time,
void **pp_state);
-bool push_deferred_open_message_smb2(struct smb_request *req,
+bool open_was_deferred_smb2(uint64_t mid);
+void remove_deferred_open_message_smb2(uint64_t mid);
+void schedule_deferred_open_message_smb2(uint64_t mid);
+bool push_deferred_open_message_smb2(struct smbd_smb2_request *smb2req,
struct timeval request_time,
struct timeval timeout,
char *private_data,