1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00

smbd: Reset O_NONBLOCK on open files

See the comment inline :-)

Bug: https://bugzilla.samba.org/show_bug.cgi?id=12268
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Simo <simo@samba.org>

Autobuild-User(master): Volker Lendecke <vl@samba.org>
Autobuild-Date(master): Thu Sep 15 20:21:41 CEST 2016 on sn-devel-144
This commit is contained in:
Volker Lendecke 2016-08-29 09:58:45 +02:00
parent 064d240323
commit e69b17d603

View File

@ -901,6 +901,25 @@ static NTSTATUS open_file(files_struct *fsp,
return status;
}
if (local_flags & O_NONBLOCK) {
/*
* GPFS can return ETIMEDOUT for pread on
* nonblocking file descriptors when files
* migrated to tape need to be recalled. I
* could imagine this happens elsehwere
* too. With blocking file descriptors this
* does not happen.
*/
ret = set_blocking(fsp->fh->fd, true);
if (ret == -1) {
status = map_nt_error_from_unix(errno);
DBG_WARNING("Could not set fd to blocking: "
"%s\n", strerror(errno));
fd_close(fsp);
return status;
}
}
ret = SMB_VFS_FSTAT(fsp, &smb_fname->st);
if (ret == -1) {
/* If we have an fd, this stat should succeed. */