From: Jeffrey Altman Date: Wed, 2 Nov 2011 23:27:42 +0000 (-0400) Subject: Windows: always set reparse point attrib for symlink X-Git-Tag: openafs-stable-1_8_0pre1~3097 X-Git-Url: https://git.openafs.org/?p=openafs.git;a=commitdiff_plain;h=d8f357b9838509c5a5cfa22a85dffcd962804025;hp=e39e8bb5b2f08281bc1d91c9209a1a3f1b463af2 Windows: always set reparse point attrib for symlink Make sure that we always set the reparse point attribute for symlinks in directory enumerations and attribute queries. Change-Id: Ie7520cef64793e3385f229934189fc56a3edb584 Reviewed-on: http://gerrit.openafs.org/5793 Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman --- diff --git a/src/WINNT/afsrdr/kernel/lib/AFSDirControl.cpp b/src/WINNT/afsrdr/kernel/lib/AFSDirControl.cpp index 1c5a8cc..cf7ec7b 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSDirControl.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSDirControl.cpp @@ -766,6 +766,8 @@ AFSQueryDirectory( IN PIRP Irp) &stFileInfo))) { + ulAdditionalAttributes = FILE_ATTRIBUTE_REPARSE_POINT; + bUseFileInfo = TRUE; } } @@ -851,7 +853,7 @@ AFSQueryDirectory( IN PIRP Irp) pDirInfo->EndOfFile = stFileInfo.EndOfFile; pDirInfo->AllocationSize = stFileInfo.AllocationSize; - pDirInfo->FileAttributes = stFileInfo.FileAttributes; + pDirInfo->FileAttributes = stFileInfo.FileAttributes | ulAdditionalAttributes; } else if( BooleanFlagOn( pDirEntry->Flags, AFS_DIR_ENTRY_FAKE)) { diff --git a/src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp b/src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp index bd98b3e..9659505 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp @@ -780,6 +780,8 @@ AFSQueryBasicInfo( IN PIRP Irp, &stFileInfo))) { ulFileAttribs = stFileInfo.FileAttributes; + + ulFileAttribs |= FILE_ATTRIBUTE_REPARSE_POINT; } } @@ -1329,6 +1331,8 @@ AFSQueryNetworkInfo( IN PIRP Irp, &stFileInfo))) { ulFileAttribs = stFileInfo.FileAttributes; + + ulFileAttribs |= FILE_ATTRIBUTE_REPARSE_POINT; } } @@ -1484,6 +1488,8 @@ AFSQueryAttribTagInfo( IN PIRP Irp, &stFileInfo))) { ulFileAttribs = stFileInfo.FileAttributes; + + ulFileAttribs |= FILE_ATTRIBUTE_REPARSE_POINT; } }