From 98ea4a2219c4ff1c1a8307f64a7588845be7af6f Mon Sep 17 00:00:00 2001 From: "ouyang.xu" Date: Mon, 11 Jul 2016 18:12:52 +0800 Subject: pvfs_open win10 fix, need return SMB2_CREATE_TAG_QFID Signed-off-by: kkhaike Reviewed-by: Jeremy Allison Reviewed-by: Andrew Bartlett Reviewed-by: Uri Simchoni Autobuild-User(master): Uri Simchoni Autobuild-Date(master): Fri Aug 19 09:35:15 CEST 2016 on sn-devel-144 --- source4/smb_server/smb/nttrans.c | 1 + source4/smb_server/smb/reply.c | 1 + source4/smb_server/smb2/fileio.c | 5 +++++ 3 files changed, 7 insertions(+) (limited to 'source4/smb_server') diff --git a/source4/smb_server/smb/nttrans.c b/source4/smb_server/smb/nttrans.c index cfef9d18a42..97c4bb570d7 100644 --- a/source4/smb_server/smb/nttrans.c +++ b/source4/smb_server/smb/nttrans.c @@ -134,6 +134,7 @@ static NTSTATUS nttrans_create(struct smbsrv_request *req, io->ntcreatex.in.sec_desc = NULL; io->ntcreatex.in.ea_list = NULL; io->ntcreatex.in.query_maximal_access = false; + io->ntcreatex.in.query_on_disk_id = false; io->ntcreatex.in.private_flags = 0; req_pull_string(&req->in.bufinfo, &io->ntcreatex.in.fname, diff --git a/source4/smb_server/smb/reply.c b/source4/smb_server/smb/reply.c index 7ce5f5dbaa5..8511b8fef6c 100644 --- a/source4/smb_server/smb/reply.c +++ b/source4/smb_server/smb/reply.c @@ -2239,6 +2239,7 @@ void smbsrv_reply_ntcreate_and_X(struct smbsrv_request *req) io->ntcreatex.in.ea_list = NULL; io->ntcreatex.in.sec_desc = NULL; io->ntcreatex.in.query_maximal_access = false; + io->ntcreatex.in.query_on_disk_id = false; io->ntcreatex.in.private_flags = 0; /* we need a neater way to handle this alignment */ diff --git a/source4/smb_server/smb2/fileio.c b/source4/smb_server/smb2/fileio.c index f6460e0ee72..92f148533e1 100644 --- a/source4/smb_server/smb2/fileio.c +++ b/source4/smb_server/smb2/fileio.c @@ -44,6 +44,11 @@ static void smb2srv_create_send(struct ntvfs_request *ntvfs) data_blob_const(data, 8))); } + if (IVAL(io->smb2.out.on_disk_id, 0) != 0) { + SMB2SRV_CHECK(smb2_create_blob_add(req, &io->smb2.out.blobs, + SMB2_CREATE_TAG_QFID, + data_blob_const(io->smb2.out.on_disk_id, 32))); + } SMB2SRV_CHECK(smb2_create_blob_push(req, &blob, io->smb2.out.blobs)); SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x58, true, blob.length)); -- cgit v1.2.1