* 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:
Corinna Vinschen
2008-10-20 19:30:06 +00:00
parent 87ab6bfb62
commit 669bdeb822
5 changed files with 38 additions and 45 deletions

View File

@ -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 ())
{