This simplifies next patch.
Signed-off-by: Dmitry Timoshkov dmitry@baikal.ru --- server/fd.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/server/fd.c b/server/fd.c index 0a76c622f2..e9d3fcf309 100644 --- a/server/fd.c +++ b/server/fd.c @@ -169,7 +169,7 @@ struct closed_fd { struct list entry; /* entry in inode closed list */ int unix_fd; /* the unix file descriptor */ - int unlink; /* whether to unlink on close */ + int unlink; /* whether to unlink on close: -1 - implicit FILE_DELETE_ON_CLOSE, 1 - explicit disposition */ char *unix_name; /* name to unlink on close, points to parent fd unix_name */ };
@@ -1869,7 +1869,7 @@ struct fd *open_fd( struct fd *root, const char *name, int flags, mode_t *mode, goto error; }
- fd->closed->unlink = (options & FILE_DELETE_ON_CLOSE) != 0; + fd->closed->unlink = (options & FILE_DELETE_ON_CLOSE) ? -1 : 0; if (flags & O_TRUNC) { if (S_ISDIR(st.st_mode)) @@ -2280,7 +2280,9 @@ static void set_fd_disposition( struct fd *fd, int unlink ) return; }
- fd->closed->unlink = unlink || (fd->options & FILE_DELETE_ON_CLOSE); + fd->closed->unlink = unlink ? 1 : 0; + if (fd->options & FILE_DELETE_ON_CLOSE) + fd->closed->unlink = -1; }
/* set new name for the fd */
Hi,
While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=42776
Your paranoid android.
=== debian9 (build log) ===
error: patch failed: dlls/ntdll/tests/file.c:3016 error: patch failed: dlls/ntdll/tests/file.c:3037 Task: Patch failed to apply