diff options
Diffstat (limited to 'source3/smbd')
-rw-r--r-- | source3/smbd/globals.h | 2 | ||||
-rw-r--r-- | source3/smbd/smb2_create.c | 2 | ||||
-rw-r--r-- | source3/smbd/smb2_glue.c | 1 |
3 files changed, 5 insertions, 0 deletions
diff --git a/source3/smbd/globals.h b/source3/smbd/globals.h index db19a3a108..581e5b197f 100644 --- a/source3/smbd/globals.h +++ b/source3/smbd/globals.h @@ -227,6 +227,8 @@ struct smbd_smb2_request { int current_idx; bool do_signing; + struct files_struct *compat_chain_fsp; + struct { /* the NBT header is not allocated */ uint8_t nbt_hdr[4]; diff --git a/source3/smbd/smb2_create.c b/source3/smbd/smb2_create.c index 5d379ec3a5..d1472d5361 100644 --- a/source3/smbd/smb2_create.c +++ b/source3/smbd/smb2_create.c @@ -275,6 +275,8 @@ static NTSTATUS smbd_smb2_create(struct smbd_smb2_request *req, } } + req->compat_chain_fsp = smbreq->chain_fsp; + *out_oplock_level = 0; if ((in_create_disposition == FILE_SUPERSEDE) && (info == FILE_WAS_OVERWRITTEN)) { diff --git a/source3/smbd/smb2_glue.c b/source3/smbd/smb2_glue.c index c3c38542a0..5fa3bd2249 100644 --- a/source3/smbd/smb2_glue.c +++ b/source3/smbd/smb2_glue.c @@ -46,6 +46,7 @@ struct smb_request *smbd_smb2_fake_smb_request(struct smbd_smb2_request *req) if (IVAL(inhdr, SMB2_HDR_FLAGS) & SMB2_HDR_FLAG_DFS) { smbreq->flags2 |= FLAGS2_DFS_PATHNAMES; } + smbreq->chain_fsp = req->compat_chain_fsp; return smbreq; } |