summaryrefslogtreecommitdiffstats
path: root/source3
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2014-03-20 14:36:11 +0100
committerJeremy Allison <jra@samba.org>2014-03-21 19:20:17 +0100
commita5cd8a513f18336c3ab84867806631628a656f49 (patch)
treed563957a75254d8b80d31f11fa918c7f6660fe35 /source3
parenta699f0e0a6d1c3582a5d8f5361e5c32b46629451 (diff)
downloadsamba-a5cd8a513f18336c3ab84867806631628a656f49.tar.gz
samba-a5cd8a513f18336c3ab84867806631628a656f49.tar.xz
samba-a5cd8a513f18336c3ab84867806631628a656f49.zip
smbd: Explicitly pass "file_id" to schedule_defer_open
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.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/source3/smbd/open.c b/source3/smbd/open.c
index f995c0bcae..ba633b9395 100644
--- a/source3/smbd/open.c
+++ b/source3/smbd/open.c
@@ -1738,6 +1738,7 @@ static NTSTATUS fcb_or_dos_open(struct smb_request *req,
}
static void schedule_defer_open(struct share_mode_lock *lck,
+ struct file_id id,
struct timeval request_time,
struct smb_request *req)
{
@@ -1768,7 +1769,7 @@ static void schedule_defer_open(struct share_mode_lock *lck,
state.delayed_for_oplocks = True;
state.async_open = false;
- state.id = lck->data->id;
+ state.id = id;
if (!request_timed_out(request_time, timeout)) {
defer_open(lck, request_time, timeout, req, &state);
@@ -2412,7 +2413,7 @@ static NTSTATUS open_file_ntcreate(connection_struct *conn,
}
if (delay_for_oplock(fsp, 0, lck, false, create_disposition)) {
- schedule_defer_open(lck, request_time, req);
+ schedule_defer_open(lck, fsp->file_id, request_time, req);
TALLOC_FREE(lck);
DEBUG(10, ("Sent oplock break request to kernel "
"oplock holder\n"));
@@ -2525,7 +2526,7 @@ static NTSTATUS open_file_ntcreate(connection_struct *conn,
fsp, oplock_request, lck,
NT_STATUS_EQUAL(status, NT_STATUS_SHARING_VIOLATION),
create_disposition)) {
- schedule_defer_open(lck, request_time, req);
+ schedule_defer_open(lck, fsp->file_id, request_time, req);
TALLOC_FREE(lck);
fd_close(fsp);
return NT_STATUS_SHARING_VIOLATION;