diff options
author | Volker Lendecke <vl@samba.org> | 2020-02-20 14:13:35 +0100 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2020-02-20 22:14:25 +0000 |
commit | aebe427b77b5315eb5d2b05b8c72824ca0389723 (patch) | |
tree | 04d15af6a09a0dabe20ed416b64129e56caa4fc7 /source3/modules/vfs_aio_pthread.c | |
parent | 4a943d842a51674425f0c4019f823ef0a9d09f49 (diff) | |
download | samba-aebe427b77b5315eb5d2b05b8c72824ca0389723.tar.gz |
smbd: Separate aio_pthread indicator from normal EINTR
According to Posix and the Linux open(2) manpage, the open-syscall can
return EINTR. If that happens, core smbd saw this as an indication
that aio_pthread's open function was doing its job. With a real EINTR
without aio_pthread this meant we ended up in a server_exit after 20
seconds, because there was nobody to do the retry.
EINTR is mapped to NT_STATUS_RETRY. Handle this by just retrying after
a second.
Bug: https://bugzilla.samba.org/show_bug.cgi?id=14285
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Thu Feb 20 22:14:25 UTC 2020 on sn-devel-184
Diffstat (limited to 'source3/modules/vfs_aio_pthread.c')
-rw-r--r-- | source3/modules/vfs_aio_pthread.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/source3/modules/vfs_aio_pthread.c b/source3/modules/vfs_aio_pthread.c index a7d97223dbd..d13ce2fdc63 100644 --- a/source3/modules/vfs_aio_pthread.c +++ b/source3/modules/vfs_aio_pthread.c @@ -318,7 +318,7 @@ static int open_async(const files_struct *fsp, opd->fname)); /* Cause the calling code to reschedule us. */ - errno = EINTR; /* Maps to NT_STATUS_RETRY. */ + errno = EINPROGRESS; /* Maps to NT_STATUS_MORE_PROCESSING_REQUIRED. */ return -1; } |