[cifs-protocol] Create Context SMB2_CREATE_QUERY_ON_DISK_ID payload
Aurélien Aptel
aaptel at suse.com
Thu Nov 14 18:05:20 UTC 2019
Hi,
There is a create context SMB2_CREATE_QUERY_ON_DISK_ID that MS-SMB2
describes as, for the request:
("QFid")
The client is requesting that the server return a 32-
byte opaque BLOB that uniquely identifies the file
being opened on disk. No data is passed to the
server by the client.
for the response:
("QFid")
The server returned DiskID of the open file in a volume.
SMB2_CREATE_CONTEXT Response takes the same
form as defined in section 2.2.13.2.
So on one side it reads "32-byte opaque blob" but on the other
"DiskID". I could not find a reference to what is a DiskId.
After some testing Windows Server seems to return the persistent file id
+ something, which Samba does as well, with the following note:
/* From conversations with Microsoft engineers at
the MS plugfest. The first 8 bytes are the "volume index"
== inode, the second 8 bytes are the "volume id",
== dev. This will be updated in the SMB2 doc. */
Samba returns
- file id (8 bytes)
- device id (4 bytes)
- padded to 32 bytes with garbage
We started to rely on the first 8 bytes being the FileId in the linux
kernel client but recently we had a customer with a Dell EMC server that
doesn't do that.
Could we clarify the situation on the meaning of this payload, or at
least the first 8 bytes being the FileId?
Cheers,
--
Aurélien Aptel / SUSE Labs Samba Team
GPG: 1839 CB5F 9F5B FB9B AA97 8C99 03C8 A49B 521B D5D3
SUSE Software Solutions Germany GmbH, Maxfeldstr. 5, 90409 Nürnberg, DE
GF: Felix Imendörffer, Mary Higgins, Sri Rasiah HRB 247165 (AG München)
More information about the cifs-protocol
mailing list