Cygwin: set the FILE_ATTRIBUTE_ARCHIVE DOS attribute on file creation
Do this for normal files and symlinks, not for temporary files, device files or unix sockets. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
parent
3c19e1e0d9
commit
282f40e469
|
@ -157,7 +157,7 @@ cygwin_exception::open_stackdumpfile ()
|
|||
NTSTATUS status;
|
||||
/* Try to open it to dump the stack in it. */
|
||||
status = NtCreateFile (&h, GENERIC_WRITE | SYNCHRONIZE, &attr, &io,
|
||||
NULL, FILE_ATTRIBUTE_NORMAL, 0, FILE_OVERWRITE_IF,
|
||||
NULL, FILE_ATTRIBUTE_ARCHIVE, 0, FILE_OVERWRITE_IF,
|
||||
FILE_SYNCHRONOUS_IO_NONALERT
|
||||
| FILE_OPEN_FOR_BACKUP_INTENT, NULL, 0);
|
||||
if (NT_SUCCESS (status))
|
||||
|
|
|
@ -649,7 +649,8 @@ fhandler_base::open (int flags, mode_t mode)
|
|||
|
||||
if (flags & (O_CREAT | O_TMPFILE))
|
||||
{
|
||||
file_attributes |= FILE_ATTRIBUTE_NORMAL;
|
||||
file_attributes |= (flags & O_TMPFILE)
|
||||
? FILE_ATTRIBUTE_NORMAL : FILE_ATTRIBUTE_ARCHIVE;
|
||||
|
||||
if (pc.fs_is_nfs ())
|
||||
{
|
||||
|
|
|
@ -1945,7 +1945,7 @@ symlink_wsl (const char *oldpath, path_conv &win32_newpath)
|
|||
status = NtCreateFile (&fh, DELETE | FILE_GENERIC_WRITE
|
||||
| READ_CONTROL | WRITE_DAC,
|
||||
win32_newpath.get_object_attr (attr, sec_none_nih),
|
||||
&io, NULL, FILE_ATTRIBUTE_NORMAL,
|
||||
&io, NULL, FILE_ATTRIBUTE_ARCHIVE,
|
||||
FILE_SHARE_VALID_FLAGS, FILE_CREATE,
|
||||
FILE_SYNCHRONOUS_IO_NONALERT
|
||||
| FILE_NON_DIRECTORY_FILE
|
||||
|
@ -2264,7 +2264,7 @@ symlink_worker (const char *oldpath, path_conv &win32_newpath, bool isdevice)
|
|||
|
||||
status = NtCreateFile (&fh, access,
|
||||
win32_newpath.get_object_attr (attr, sec_none_nih),
|
||||
&io, NULL, FILE_ATTRIBUTE_NORMAL,
|
||||
&io, NULL, FILE_ATTRIBUTE_ARCHIVE,
|
||||
FILE_SHARE_VALID_FLAGS,
|
||||
isdevice ? FILE_OVERWRITE_IF : FILE_CREATE,
|
||||
FILE_SYNCHRONOUS_IO_NONALERT
|
||||
|
|
|
@ -12,3 +12,7 @@ Bug Fixes
|
|||
|
||||
- Fix showing DLL version info from native Windows tools.
|
||||
Addresses: https://cygwin.com/pipermail/cygwin/2021-November/249867.html
|
||||
|
||||
- Fix long-standing problem that new files don't get created with the
|
||||
FILE_ATTRIBUTE_ARCHIVE DOS attribute set.
|
||||
Addresses: https://cygwin.com/pipermail/cygwin/2021-November/249909.html
|
||||
|
|
Loading…
Reference in New Issue