1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-12 20:58:37 +03:00

s3:blocking: do the timeout calculation before calling dbwrap_watched_watch_send()

This makes the next commits easier to understand.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=14113

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
This commit is contained in:
Stefan Metzmacher 2019-08-19 15:21:50 +02:00
parent 8da7c10a58
commit 997548a5f1

View File

@ -308,14 +308,6 @@ struct tevent_req *smbd_smb1_do_locks_send(
}
state->deny_status = NT_STATUS_FILE_LOCK_CONFLICT;
subreq = dbwrap_watched_watch_send(
state, state->ev, lck->data->record, blocking_pid);
if (tevent_req_nomem(subreq, req)) {
goto done;
}
TALLOC_FREE(lck);
tevent_req_set_callback(subreq, smbd_smb1_do_locks_retry, req);
endtime = state->endtime;
if (blocking_smblctx == UINT64_MAX) {
@ -330,6 +322,14 @@ struct tevent_req *smbd_smb1_do_locks_send(
endtime = timeval_min(&endtime, &tmp);
}
subreq = dbwrap_watched_watch_send(
state, state->ev, lck->data->record, blocking_pid);
if (tevent_req_nomem(subreq, req)) {
goto done;
}
TALLOC_FREE(lck);
tevent_req_set_callback(subreq, smbd_smb1_do_locks_retry, req);
ok = tevent_req_set_endtime(subreq, state->ev, endtime);
if (!ok) {
tevent_req_oom(req);
@ -450,14 +450,6 @@ static void smbd_smb1_do_locks_try(struct tevent_req *req)
}
state->deny_status = NT_STATUS_FILE_LOCK_CONFLICT;
subreq = dbwrap_watched_watch_send(
state, state->ev, lck->data->record, blocking_pid);
if (tevent_req_nomem(subreq, req)) {
goto done;
}
TALLOC_FREE(lck);
tevent_req_set_callback(subreq, smbd_smb1_do_locks_retry, req);
endtime = state->endtime;
if (blocking_smblctx == UINT64_MAX) {
@ -472,6 +464,14 @@ static void smbd_smb1_do_locks_try(struct tevent_req *req)
endtime = timeval_min(&endtime, &tmp);
}
subreq = dbwrap_watched_watch_send(
state, state->ev, lck->data->record, blocking_pid);
if (tevent_req_nomem(subreq, req)) {
goto done;
}
TALLOC_FREE(lck);
tevent_req_set_callback(subreq, smbd_smb1_do_locks_retry, req);
ok = tevent_req_set_endtime(subreq, state->ev, endtime);
if (!ok) {
status = NT_STATUS_NO_MEMORY;