From d8f357b9838509c5a5cfa22a85dffcd962804025 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Wed, 2 Nov 2011 19:27:42 -0400 Subject: [PATCH] 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 --- src/WINNT/afsrdr/kernel/lib/AFSDirControl.cpp | 4 +++- src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/WINNT/afsrdr/kernel/lib/AFSDirControl.cpp b/src/WINNT/afsrdr/kernel/lib/AFSDirControl.cpp index 1c5a8cc66..cf7ec7be6 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 bd98b3e42..965950558 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; } } -- 2.39.5