From: Jeffrey Altman Date: Thu, 14 Feb 2013 14:26:16 +0000 (-0500) Subject: Windows: Unique file ID is per volume X-Git-Tag: upstream/1.8.0_pre1^2~1542 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=9b48daff341773580b3635e476fea112374986f2;p=packages%2Fo%2Fopenafs.git Windows: Unique file ID is per volume The unique file ID returned as part of the BY_HANDLE_FILE_INFORMATION data structure obtained via GetFileInformationByHandle() is only guarranteed to be unique within the volume where volume uniqueness is determined by the volume's serial number. It therefore doesn't make sense to return the volume id as part of FILE_INTERNAL_INFORMATION IndexNumber. Instead return Vnode and Unique as that is what ensures uniqueness within an existing AFS volume. Unfortunately, {VolId, Vnode, Unique} does not guarantee uniqueness for when multiple cells are in use. Change-Id: I6c6ea4a04aa79778cce811560d8106a3a5e373cb Reviewed-on: http://gerrit.openafs.org/9108 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- diff --git a/src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp b/src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp index 0deb3765a..114037c62 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp @@ -1031,9 +1031,9 @@ AFSQueryInternalInfo( IN PIRP Irp, if( *Length >= sizeof( FILE_INTERNAL_INFORMATION)) { - Buffer->IndexNumber.HighPart = Fcb->ObjectInformation->FileId.Volume; + Buffer->IndexNumber.HighPart = Fcb->ObjectInformation->FileId.Vnode; - Buffer->IndexNumber.LowPart = Fcb->ObjectInformation->FileId.Vnode; + Buffer->IndexNumber.LowPart = Fcb->ObjectInformation->FileId.Unique; *Length -= sizeof( FILE_INTERNAL_INFORMATION); }