* ntdll.h (NtSetAttributesFile): New inline function.
* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Use NtSetAttributesFile. * path.cc (symlink_worker): Ditto. * syscalls.cc (unlink_nt): Ditto. (rename): Omit FILE_SHARE_DELETE when opening files on Samba. Add comment to explain why.
This commit is contained in:
@ -827,12 +827,8 @@ fhandler_disk_file::fchmod (mode_t mode)
|
||||
if (S_ISSOCK (mode))
|
||||
pc |= (DWORD) FILE_ATTRIBUTE_SYSTEM;
|
||||
|
||||
FILE_BASIC_INFORMATION fbi;
|
||||
fbi.CreationTime.QuadPart = fbi.LastAccessTime.QuadPart
|
||||
= fbi.LastWriteTime.QuadPart = fbi.ChangeTime.QuadPart = 0LL;
|
||||
fbi.FileAttributes = pc.file_attributes () ?: FILE_ATTRIBUTE_NORMAL;
|
||||
status = NtSetInformationFile (get_handle (), &io, &fbi, sizeof fbi,
|
||||
FileBasicInformation);
|
||||
status = NtSetAttributesFile (get_handle (), pc.file_attributes ()
|
||||
?: FILE_ATTRIBUTE_NORMAL);
|
||||
/* Correct NTFS security attributes have higher priority */
|
||||
if (!pc.has_acls ())
|
||||
{
|
||||
|
Reference in New Issue
Block a user