mirror of
https://github.com/samba-team/samba.git
synced 2025-02-28 01:58:17 +03:00
s3: VFS: default: Remove fallback if we don't have HAVE_PREAD set. Samba doesn't work without pread.
Start of the changes to remove synchronous VFS read. Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Ralph Boehme <slow@samba.org>
This commit is contained in:
parent
bc71cd035c
commit
ff3a23e90f
@ -641,28 +641,8 @@ static ssize_t vfswrap_pread(vfs_handle_struct *handle, files_struct *fsp, void
|
|||||||
}
|
}
|
||||||
|
|
||||||
#else /* HAVE_PREAD */
|
#else /* HAVE_PREAD */
|
||||||
off_t curr;
|
errno = ENOSYS;
|
||||||
int lerrno;
|
result = -1;
|
||||||
|
|
||||||
curr = SMB_VFS_LSEEK(fsp, 0, SEEK_CUR);
|
|
||||||
if (curr == -1 && errno == ESPIPE) {
|
|
||||||
/* Maintain the fiction that pipes can be seeked (sought?) on. */
|
|
||||||
result = SMB_VFS_READ(fsp, data, n);
|
|
||||||
fsp->fh->pos = 0;
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (SMB_VFS_LSEEK(fsp, offset, SEEK_SET) == -1) {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
errno = 0;
|
|
||||||
result = SMB_VFS_READ(fsp, data, n);
|
|
||||||
lerrno = errno;
|
|
||||||
|
|
||||||
SMB_VFS_LSEEK(fsp, curr, SEEK_SET);
|
|
||||||
errno = lerrno;
|
|
||||||
|
|
||||||
#endif /* HAVE_PREAD */
|
#endif /* HAVE_PREAD */
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user