summaryrefslogtreecommitdiffstats
path: root/source3
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2014-06-20 14:15:19 +0000
committerVolker Lendecke <vl@samba.org>2014-06-21 20:38:11 +0200
commit0c2e763aaa05f63bb8563e62f9731e35afa9ed86 (patch)
tree99dda3ff8725928571725614d24bfc5b9afa80ee /source3
parent0ead434b84a7c3226ac223acc79ad0e794da3877 (diff)
downloadsamba-0c2e763aaa05f63bb8563e62f9731e35afa9ed86.tar.gz
samba-0c2e763aaa05f63bb8563e62f9731e35afa9ed86.tar.xz
samba-0c2e763aaa05f63bb8563e62f9731e35afa9ed86.zip
smbd: First watch, then defer
We exit if any of these if-statement fails, so a simple swap should not make a difference. Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'source3')
-rw-r--r--source3/smbd/open.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/source3/smbd/open.c b/source3/smbd/open.c
index c0f4dea3ac..9cbc046760 100644
--- a/source3/smbd/open.c
+++ b/source3/smbd/open.c
@@ -1580,11 +1580,6 @@ static void defer_open(struct share_mode_lock *lck,
*open_rec = *state;
- if (!push_deferred_open_message_smb(req, request_time, timeout,
- state->id, open_rec)) {
- TALLOC_FREE(lck);
- exit_server("push_deferred_open_message_smb failed");
- }
if (lck) {
struct defer_open_state *watch_state;
struct tevent_req *watch_req;
@@ -1614,6 +1609,12 @@ static void defer_open(struct share_mode_lock *lck,
timeval_sum(&request_time, &timeout));
SMB_ASSERT(ret);
}
+
+ if (!push_deferred_open_message_smb(req, request_time, timeout,
+ state->id, open_rec)) {
+ TALLOC_FREE(lck);
+ exit_server("push_deferred_open_message_smb failed");
+ }
}
static void defer_open_done(struct tevent_req *req)